【发布时间】:2012-12-06 02:00:03
【问题描述】:
我有以下 javascript:(JSFiddle)
$(function () {
function Cat()
{
this.Meow = function (sound) {
alert("Meow: " + sound);
}
this.Kick = function () {
MakeNoise();
}
var MakeNoise = function () {
Meow("noise");
//Cat.Meow("noise");
//self.Meow("noise");
//this.Meow("noise");
}
}
var c = new Cat();
c.Kick();
});
当我调用 Kick 函数时,我收到错误“未定义喵”(我在 MakeNoise 函数中尝试的四件事中的任何一件)。
我也尝试过这样的原型设计,但这给了我同样的错误:
Cat.prototype.Meow = function (sound) {
return this.Meow(sound);
}
我确信这有一个非常简单的解决方案,但我不知道如何成功调用“Cat”类的Meow 函数。我该怎么做?
顺便说一句,这种架构是否有意义?我的意图是将Kick 和Meow 作为公共函数,将MakeNoise 作为私有函数。
【问题讨论】:
-
Musa 在下面的回答可以解决问题,但我鼓励您查看以下文章以获取有关“此”和范围界定的更多解释。 developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/…
-
@gerges 感谢您的链接。我假设(似乎不正确)这将引用当前对象。
标签: javascript