Javascript 来自原型自执行方法的方法调用
我试图真正了解原型在js中的工作原理。我目前正在做一个基于循环的小游戏项目 我希望有一个游戏对象实例,一旦实例化就会自动启动,调用它定义的循环方法 我想得到的是这样的东西:Javascript 来自原型自执行方法的方法调用,javascript,prototype,self-executing-function,Javascript,Prototype,Self Executing Function,我试图真正了解原型在js中的工作原理。我目前正在做一个基于循环的小游戏项目 我希望有一个游戏对象实例,一旦实例化就会自动启动,调用它定义的循环方法 我想得到的是这样的东西: function Game() {}; Game.prototype = { start: (function() { this.loop(); // this is where i have a problem })() loop: function() {
function Game() {};
Game.prototype = {
start: (function() {
this.loop(); // this is where i have a problem
})()
loop: function() {
// do stuff
}
}
现在,很明显,这不起作用,因为我在start周围使用了一个自动执行函数来让它自动启动,所以'this'关键字代表窗口对象,而不是游戏对象
有没有什么方法可以做到这一点,这样我就不必在实例化一个新的游戏对象后手动调用start方法
谢谢好的,我就是这么想的。但这让我有些困扰,因为我认为这可能不是编写代码的好方法。我想它终究不会那么糟糕。谢谢我不确定你认为什么是编写代码的正确方式,你期望什么?我不知道。我想这是因为我们首先声明了一个对象,它必须调用一个方法循环,而这个方法循环甚至还没有在同一个指令块中定义。它是一个函数,因此它在被调用之前不会被执行。Javascript解释器将在原型链中查找循环成员,直到找到它(或不找到)。这个/原型一开始理解起来有点复杂,因为this关键字和javathis无关。
function Game() { this.loop(); };
Game.prototype={
loop: function() {
// do stuff
}
}
new Game;