从零开始学习jQuery(剧场版) 你必须知道的javascript

alert(\); } 无论使用哪种方式声明, 实际保存时都是使用函数名创建window对象的属性. 并且值只有函数体没有函数名称.

所以,下面三种声明方式是等效的:

function myMethod() { alert(\); } window.myMethod = function() { alert(\); } myMethod = function() { alert(\); } 六.\究竟是什么

在C#中,this变量通常指类的当前实例. 在javascript则不同, javascript中的\是函数上下文,不是由声明决定,而是由如何调用决定.因为全局函数其实就是window的属性, 所以在顶层调用全局函数时的this是指window对象. 下面的例子可以很好的说明这一切:

var o1 = { name: \ }; window.name = \; function showName() { alert(this.name); } o1.show = showName; window.show = showName; showName(); o1.show(); window.show(); 结果:

结果证明在顶层调用函数和使用window对象调用函数时, this都指向window对象. 而在对象中调用函数时this指向当前对象.

七.javascript中的闭包

闭包的概念比较难以理解, 先看闭包的定义:

闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

简单表达:

闭包就是function实例以及执行function实例时来自环境的变量. 先看下面的例子: