我有一个这样的对象:
var obj = {
name: "Tom",
talk: function(){console.log( "my name is" + this.name )}
}
我想将此替换为其他值,例如 self ,以便它始终引用我的对象,无论我在何处使用它。
如何将 self 绑定到我的对象,以获得类似的结果:
function(){console.log( "my name is" + self.name )}
没有在每个方法的乞讨时写var self = this
我正在寻找一个强制变量 self 来关闭我的对象方法的函数。
有可能吗?怎么样?
答案 0 :(得分:3)
我不知道你为什么要这样做。如果这样做,则使用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();
}();
}
答案 1 :(得分:1)
可替换地,
watchOS 2
答案 2 :(得分:0)
var obj = {
name: "Tom",
talk(){console.log( "my name is " + this.name )}
}
obj.talk( ); //prints Tom
obj.name = "Harry";
obj.talk( ); //prints Harry
答案 3 :(得分:-1)
window.self = obj。我认为这会起作用