/**
2016-11-10.
*/
/**
* Date: 12-3-24
*
* 说明: 这个例程说明闭包性和回调函数的原理
* 执行程序的输出如下:
**这是函数a.c()
**这是字符串: 是一个字符串
**这是局部函数inner()
**这是函数a.d(callback)
**这是匿名函数
**这是函数a.e(string)
**变量string是: 这是字符串
*/var a = {
b : "这是字符串"
};a.c = function () {
console.log("这是函数a.c()");
console.log(this.b + ": 是一个字符串");
var b = this.b;
inner(this.d);
function inner(callback) {
console.log("这是局部函数inner()");
callback(function () {
console.log("这是匿名函数");
a.e(b); //这里的匿名函数可以访问到函数a.c()中定义的变量b;a是全局对象。
});
};
}; a.d = function (callback) {
console.log("这是函数a.d(callback)");
callback()
};a.e = function (string) {
console.log("这是函数a.e(string)");
console.log("变量string是: " + string);
};
a.c();
"D:\Program Files\JetBrains\WebStorm 8.0.6\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" closure.js
这是函数a.c()
这是字符串: 是一个字符串
这是局部函数inner()
这是函数a.d(callback)
这是匿名函数
这是函数a.e(string)
变量string是: 这是字符串
Process finished with exit code 0