今天看了一本叫《JQuery实战》的书,直接奔最后的附录(JavaScript必知必会),看完了才发现自己对JavaScript有很大的误解,因为自己以前用的是Java和现在用的C#都多多少少影响了自己的思维,并且语法的魔法更干扰了我的理解,所以,指出来,让大家也好理解。
JavaScript函数被认为是对象,与其他JavaScript对象类型一样,比如String,Number,Date。函数也是由JavaScript构造器来定义。所以也有称函数是一等对象。
举个例子:
平时我们是这样写的,
但是我们可以这样写帮助理解上面的话,
这个意思是把函数指派给顶层变量(window的属性)。
让我们再看更深入的,同时把this引进来说明,
答案是什么我想你们都猜到了(window,o1,o2,o3),在这里要注意的就是this在函数的上下文里指的是什么。调用call()和apply(),让函数表现的像是o2的方法,但其实这个函数和o2没有任何关联(连o2的属性都不是)。