_.bindAll()用于JavaScript单例方法
_.bindAll() on JavaScript singleton methods?
方法obj2。在下面的代码中,Method1是从另一个对象调用的。我如何绑定"此上下文",以便我可以从obj2引用obj1 ?
var singleton = {
obj1 : {
a : 5
},
obj2 : {
method1 : function(){
this.obj1.a; //undefined
}
}
}
我尝试使用下划线_.bindAll() -沿着这些行-但失败了…
var singleton = {
obj1 : {
a : 5
},
obj2 : {
method1 : function(){
this.obj1.a; //undefined
}
},
init : function(){
_.bind(this, obj2.method1)
}
}
singleton.init();
谢谢:)
-
您需要用
_.bind()
的结果重新分配singleton.obj2.method2()
://in .init():
this.obj2。Method1 = __bind (this.obj2. bind)method1,这)
-
要使
singleton.init()
在调用时具有适当的this
,您需要显式指定它:singleton.init.call (singleton)
完整的演示在这里。但记住,Singleton
模式很糟糕,好吗?
相关文章:
- 创建命名空间 Javascript 单例类的对象
- Javascript 单例模式
- 为什么这个javascript单例方法有效
- JavaScript 对象的单例行为
- Javascript 文字对象和单例模式
- JavaScript 中的单例实例范围混淆
- Javascript 单例继承
- Javascript/NodeJS是创建单例对象的最佳方式
- JavaScript,如何在使用单例时保持适当的封装
- 带构造函数的语义JavaScript单例
- 在javascript中还有其他实现单例模式的方法吗?
- 如何在javascript中基于参数创建对象的单例实例
- Javascript单例函数不工作
- JavaScript单例模式-差异
- _.bindAll()用于JavaScript单例方法
- JavaScript单例类型错误:为什么严格模式会标记这个
- 用这种方式实现Javascript单例模式有什么问题吗?
- 每个字符串的javascript单例对象
- 如何将Javascript单例更改为可以多次使用的单例
- Javascript单例:如何访问私有变量