这个问题出自使用default。我使用了default造成了问题。所以这里总结下保留字

JavaScript Reserved Words
In JavaScript you cannot use these reserved words as variables, labels, or function names:

abstract	arguments	boolean	break	byte
case	catch	char	class*	const
continue	debugger	default	delete	do
double	else	enum*	eval	export*
extends*	false	final	finally	float
for	function	goto	if	implements
import*	in	instanceof	int	interface
let	long	native	new	null
package	private	protected	public	return
short	static	super*	switch	synchronized
this	throw	throws	transient	true
try	typeof	var	void	volatile
while	with	yield	

Words marked with* are new in ECMAScript5

http://www.w3schools.com/js/js_reserved.asp