var name = "window"; var object = { name: "My Object", getNameFunc: function(){ return function(){ return this.name; }; } }; alert(object.getNameFunc()()); //"window"
var name = "window"; var object = { name: "My Object", getNameFunc: function(){ var that = this; return function(){ return that.name; }; } }; alert(object.getNameFunc()()); //My Obect
先来个经典的例子,首先那个第一个this是怎么变成全局对象的?
在JS高级程序设计中这样解释:每个函数在被调用时,其活动对象都会自动取得两个特殊变量:this 和 arguments。内部函数在搜索这两个变量时,只会搜索到其活动对象为止,因此永远不可能直接访问外部函数中这两个变量。
只会搜索到活动对象这个是明白的,再往下就不懂了。。。
木子舟义
相关分类