javascript - 添加变量self而不是this来封闭

时间:2015-12-23 06:37:54

标签: javascript

我有一个这样的对象:

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 来关闭我的对象方法的函数。 有可能吗?怎么样?

4 个答案:

答案 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。我认为这会起作用