通过';这';在JavaScript中的构造过程中发送到另一个对象构造函数
好的,这是我的代码通过';这';在JavaScript中的构造过程中发送到另一个对象构造函数,javascript,class,this,Javascript,Class,This,好的,这是我的代码 function stdTile(gameObjectargs) { gameObjectargs.parent=this; this.gameObject=new gameObject(gameObjectargs); } 基本上,我想做的就是将“This”传递给gameObject,这样当我使用newstdtile({})时,我就可以引用回stdTile 但出于某种原因,每次我称它为setgameObject.parent到window有什么帮助吗
function stdTile(gameObjectargs)
{
gameObjectargs.parent=this;
this.gameObject=new gameObject(gameObjectargs);
}
基本上,我想做的就是将“This”传递给gameObject,这样当我使用newstdtile({})时,我就可以引用回stdTile代码>
但出于某种原因,每次我称它为setgameObject.parent
到window
有什么帮助吗
::编辑::
我不明白为什么我的代码没有出现,但我做了一个修改你的代码应该按预期工作;下面是一个例子:
function gameObject(args)
{
this.parent = args.parent;
this.args = args;
}
function stdTile(gameObjectargs)
{
gameObjectargs.parent=this;
this.gameObject=new gameObject(gameObjectargs);
}
var tile = new stdTile({});
console.log(tile.gameObject.parent === tile); // true
你的问题不清楚,请包括一个提琴。我不确定你想做什么,但1这个
是一个关键字2函数不能创建变量在它们之外使用,我看不到你的代码,也不理解你的问题,但这可能会有所帮助。您能否解释一下实例化后尝试访问parent
属性的方式?代码示例会很有用。只需在控制台中键入我的新stdTile对象,然后导航到gameObject属性,然后是父属性,该属性等于Window。我复制该行为的唯一方法是在尝试创建stdTile实例时忽略new
关键字。我得到了相同的结果,而没有更改原始代码中的任何内容。我猜new
关键字不见了。。。此外,为什么这个variable
属性(obj.parent.variable
)?哦,哇,原来一切都很好,除了在函数gameObject中我有这个。parent=parent而不是这个。parent=args.parent我不知道parent返回了窗口对象,或者它是一个关键字?无论如何,谢谢大家的帮助!:)obj.parent.variable
只是一种简化我的长代码的简单方法,它实际上是我正在开发的一款游戏的碰撞检测系统,通过对游戏对象进行排序,找出哪些对象与特定区域发生碰撞,然后将其存储在一个数组中,需要有一种方法来判断它们属于哪个对象:)