大家好,添加范围obj引用函数的最佳方法是什么。
我的例子,我有一个超级对象。
var SuperObj = new PIXI.sprite();
SuperObj.action = new subObj();
SuperObj.action.actionFunction = function(){// need to acces to SuperObj};
当我将函数stuf添加到动作时,我需要为其父级添加范围引用。
所以我需要在subObj
的函数中使用SuperObj所以在我的背景下,最好这样做?
var motion = this._motions[motionName];
var action = (function(motion,actions){
return function(){
console.log('actions: ', actions); // by closures
};
})(motion,this); // this scoped by closures in function
this.actions.add_newAction(action,motionName,actionName);
或者像这样
var motion = this._motions[motionName];
var action = (function(motion){
return function(){
console.log('actions: ', this.scoped ); // by scope obj
};
})(motion); action.scoped = this;
this.actions.add_newAction(action,motionName,actionName);
它的最佳表现方式,或者你有另一种建议方式? 我需要性能最佳和最功能的方式。 感谢
答案 0 :(得分:0)
如果它需要访问超级obj,它可能应该在超级obj中。
在超级课程中,您可以将孩子作为财产进行访问。
所以,方法应该是这样的:
SuperObj.addActionFunction = function(){// need to acces to SuperObj};
actions是一个(动作类的)列表,基于上面的内容,而不是superobj的直接属性,如果你需要访问该列表,另一个原因应该是superobj。