将变量self而不是this添加到闭包中
add variable self instead of this to closure
我有一个这样的对象:
var obj = {
name: "Tom",
talk: function(){console.log( "my name is" + this.name )}
}
我想将this替换为其他值,例如self,这样无论我在哪里使用它,它都会指向我的对象。
我如何将self绑定到我的对象,以便获得这样的东西:
function(){console.log( "my name is" + self.name )}
而不是在每种方法的乞求下写入var self = this
我正在寻找一个函数,它强制变量self关闭我的对象的方法。这可能吗?怎么可能?
我不知道你为什么要这么做。如果您这样做了,那么使用IIFE声明变量self
,在调用对象的init
方法将self
初始化为this
之后返回该对象。
function create_obj_using_self() {
return function() {
var self;
return {
init: function() { return self = this; },
name: "Tom",
talk: function(){console.log( "my name is" + self.name )}
}.init();
}();
}
或者,
var obj = (function(){
var obj = {
name: "Tom",
talk: function(){console.log( "my name is" + obj.name )}
};
return obj;
})();
你能试试这样的吗
var obj = {
name: "Tom",
talk(){console.log( "my name is " + this.name )}
}
obj.talk( ); //prints Tom
obj.name = "Harry";
obj.talk( ); //prints Harry
window.self=obj。我认为这将适用于
相关文章:
- 在underscorejs模板中使用闭包
- setTimeout可以与闭包内的函数一起使用吗
- 附加到原型属性的Do函数没有闭包
- 使用闭包共享构造函数参数
- 使用Google闭包编译器包含一个Ecmascript 6类
- 用于添加两个数字的javascript闭包的用法
- 我可以使用JavaScript闭包添加数字吗
- 如何将点击事件克隆并添加为单独的元素 - 没有闭包
- 使用 Google 闭包将 json 响应内容作为链接添加到对话框中
- 为什么Google闭包编译器在原始命名空间为空的情况下向全局命名空间添加变量
- 如何在匿名自执行函数中为闭包添加属性
- 使用object.assign()添加到对象中的getter发现闭包变量的值错误
- 将变量self而不是this添加到闭包中
- Javascript:在闭包中,私有成员(var)可以在实例化后添加吗
- Javascript:闭包?eventlistener获胜't添加
- 是否可以为闭包编译器添加@language ECMASCRIPT5来注释JavaScript
- 如何在加载后将媒体变量添加到数组时不改变它们.闭包
- 如何在coffeescript中向安全闭包添加实参/形参
- 将变量添加到函数作用域/闭包中.函数相当于窗口对象
- 私有成员(使用闭包),为什么初始化后添加的函数不能访问私有成员?