我刚刚接触 JavaScript 原型(prototype),但遇到了一些麻烦。
我需要根据我正在使用的基于原型(prototype)对象的系统的 LEAVE
原型(prototype)创建一个 _LEAVE
对象。 _LEAVE
对象有一个名为 Ready
的函数,该函数应在文档准备就绪时触发。该系统在一些旧代码中已经具有类似的功能,我正在努力保持其统一。
这是我正在尝试的代码,但我不断收到错误:
var LEAVE = function () {
}
$(document).ready(function () {
_LEAVE.Ready();
});
var _LEAVE = function (params) {
this.Ready = function () {
alert ("Leave Ready");
};
}
_LEAVE.prototype = new LEAVE();
错误:
SCRIPT438: Object doesn't support property or method 'Ready' leave.js, line 6 character 5
我不确定我哪里出了问题,因为这似乎是系统其他部分发生的情况。至少,类似的事情正在发生,但我正在努力将我的注意力集中在旧代码上......
如果有人能给我任何建议,我将不胜感激! :-)
最佳答案
我不确定我是否正确理解了您的意思,但是您是否正在尝试创建 LEAVE
对象的实例?如果是这样,LEAVE
需要是一个构造函数,而 Ready
应该是其 prototype
上的一个方法:
var LEAVE = function () {};
LEAVE.prototype.Ready = function () {
alert("Leave Ready");
};
现在,您可以通过使用 new
运算符调用构造函数来实例化 LEAVE
:
var _LEAVE = new LEAVE(); // _LEAVE is an instance of LEAVE
$(document).ready(function () {
_LEAVE.Ready(); // Ready is a method of `LEAVE.prototype`
});
声明为 prototype
对象属性的方法由所有实例共享。因此,LEAVE
的所有实例都将具有可用的 .Ready
方法,但它们将共享内存中函数的一份副本(分配给属性的副本) LEAVE.prototype
)。
关于javascript - 第一次尝试 JavaScript 原型(prototype)设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140141/