gpt4 book ai didi

javascript - 在函数中添加范围引用的最佳方法

转载 作者:行者123 更新时间:2023-11-28 03:48:26 24 4
gpt4 key购买 nike

嗨,伙计,向函数添加作用域 obj 引用的最佳方法是什么。

我的例子,我有一个 super 对象。

var SuperObj = new PIXI.sprite();

SuperObj.action = new subObj();

SuperObj.action.actionFunction = function(){// need to acces to SuperObj};

当我将函数内容添加到操作中时,我需要添加对其父级的范围引用。

所以我需要在我的函数中从 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);

它的最佳性能方式是什么,或者您可能有其他建议方式?我需要性能最佳且最实用的方式。谢谢

最佳答案

如果它需要访问 super 对象,它可能应该在 super 对象中。

在父类(super class)中,您可以将子类作为属性进行访问。

所以,方法应该是这样的:

SuperObj.addActionFunction = function(){// need to acces to SuperObj};

actions 是一个基于上述内容的列表( Action 类),而不是 superobj 的直接属性,如果您需要访问该列表,那么它应该位于 superobj 中的另一个原因。

关于javascript - 在函数中添加范围引用的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48245944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com