【发布时间】:2018-12-04 23:35:30
【问题描述】:
我需要在应该在对象内部调用的函数数组中创建一个对象。但 myObj.myFunctions 在创建后始终在我的对象内部未定义。
这是我的示例代码
var myObj = {
myValue:"My Callback function has been Called",
myFunctions: [this.myCallback,this.myCallback2],
init: function(){
//I need to call this.myFunctions[0...etc] as callback
//this.myFunctions[0]() //<-- Here is the error
console.log(this.myFunctions); //<-- always undefined
},
myCallback:function(){
console.log(this.myValue);
},
myCallback2:function(){
console.log(this.myValue+" Second Callback");
}
}
var createObject = Object.create(myObj);
createObject.init();
知道如何创建函数数组作为主对象的属性吗? 谢谢
【问题讨论】:
-
this的值不受对象初始化器的影响;特别是thisnot 是否指的是正在初始化的对象;它与封闭上下文中的this具有相同的值。 -
感谢您的光速快速回答,但我该如何解决这个问题?我在谷歌上花了一个小时,即使link 也帮不了我
-
首先,您的明确意图是通过运行这些方法来初始化这个事物。因此,您应该只调用
init()方法中的方法并处理数组混乱。其次,您应该考虑 JavaScript 对象的最佳实践,并编写适当的构造函数或类。答:直接调用函数,跳过数组乱码。 -
Object.create是必需的吗?为什么不为这些使用原型?
标签: javascript arrays function object callback