javascript - 第一次尝试 JavaScript 原型(prototype)设计

标签 javascript prototype

我刚刚接触 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/

相关文章:

javascript - 有没有一种方法可以将类型化数组设置为零?

javascript - 如何使用 javascript 为谷歌分析创建点击事件

javascript - 通过自定义 JS 访问 Construct 2 生成的 JavaScript

javascript - .text 未获取所有文本,但可以在控制台中使用

javascript - 使用原型(prototype)重新加载页面

javascript - 如何将旋转图标移动到左 Angular - FabricJS

javascript - 如何在 Canvas 上跟踪火柴人的路径?

javascript - 函数构造函数和原型(prototype)构造函数有什么区别?

javascript - 如何创建具有未分配属性的 Javascript 构造函数/原型(prototype)?

Javascript 为什么要将函数原型(prototype)的构造函数分配给函数本身? Programmer.prototype.constructor = 程序员