使用原型从该对象内调用对象上的函数

Ell*_*lle 1 javascript prototype object

当我试图从同一个对象内的一个对象上调用一个函数时,我遇到了问题.我读过,从该对象中调用的对象上的功能可能在这里,所以我想这一定是我使用prototype的是造成问题的.这是一个例子:

function Foo() {
    this.DoStuff();
}

Foo.prototype.DoStuff = function() {
    alert("I'm frantically doing stuff!");
}
Run Code Online (Sandbox Code Playgroud)

那段代码(或类似的东西)只是不想工作.有什么想法吗?

Jam*_*ice 5

你有什么应该工作正常.重要的是要记住,值this取决于你如何调用函数.为了使它按预期工作,您需要使用new运算符将该函数作为构造函数调用:

var foo = new Foo(); //`this` refers to this instance of Foo
Run Code Online (Sandbox Code Playgroud)

这是一个有效的例子.

如果像普通一样调用函数,则this引用没有DoStuff属性的全局对象,因此抛出TypeError.这是一个破碎的例子.