自执行代码中的“this”
"this" in self executing code
为什么这里的"this"对于对象成员函数内的自执行代码(window/globalScope)是不同的?
foo = "Window_foo"
var myobj = {
foo: 'Object_bar',
func: function(){
var self = this;
console.log("outer this.foo " + this.foo);
console.log("outer self.foo " + self.foo);
(function(){
console.log("inner this.foo " + this.foo);
console.log("inner self.foo " + self.foo);
}());
}
}
myobj.func();
我得到以下输出:
outer this.foo Object_bar
outer self.foo Object_bar
inner this.foo Window_foo
inner self.foo Object_bar
func 是 myObj 对象的成员函数。里面的"这个"必须是myObj对象。那么它内部的自执行函数如何将"this"作为窗口对象呢?
自执行函数将窗口对象作为其this
的值,即使它位于对象的方法中。
自引用单例对象的元素。 您可以在创建对象后声明函数,例如
foo = "Window_foo"
var myobj = {
foo: 'Object_bar'
}
myobj.func: function(){
console.log("outer myobj.foo " + myobj.foo);
console.log("outer myobj.foo " + myobj.foo);
(function(){
console.log("inner myobj.foo " + myobj.foo);
console.log("inner myobj.foo " + myobj.foo);
}());
}
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- JavaScript执行暂时挂起页面
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 当js函数's已执行
- 哪个先执行
- 自执行代码中的“this”
- 在 Javascript 中,在执行深度复制时,由于属性为“this”,我如何避免循环
- 我将如何通过另一个方法来执行一个方法到原始的$(this)
- this.each不是't正在执行
- 使用this/self-reference执行javascript闭包会导致内存泄漏
- d3.js/CoffeeScript:访问mouseover中类和路径的执行上下文(this)
- return this"在javascript函数中执行
- this.props.enableEdit不是执行函数时的函数错误
- JavaScript和'this'在立即执行的函数内部
- 使用'this'在Object.defineProperty中带有自执行函数的构造函数
- '返回this'在增加类型时执行
- 为什么原型函数的执行上下文(“this”)在本例中是错误的
- 当$(this)单击时,在每个tr中单独执行onclick函数
- Angular2 组件的“this”在执行回调函数时是未定义的
- 如何访问'this'control's clientID或者只是在jscript中执行Boots