首先尝试JavaScript原型

首先尝试JavaScript原型,javascript,prototype,Javascript,Prototype,在涉及JavaScript原型的地方,我的脚刚刚湿了,我遇到了一些麻烦 我需要从一个基于原型对象的系统的LEAVE原型创建一个\u LEAVE对象。\u LEAVE对象有一个名为Ready的函数,该函数应在文档准备就绪时启动。该系统在一些较旧的代码中已经具有类似的功能,我正在努力保持它的统一性 下面是我正在尝试的代码,但我一直收到一个错误: var LEAVE = function () { } $(document).ready(function () { _LEAVE.Ready

在涉及JavaScript原型的地方,我的脚刚刚湿了,我遇到了一些麻烦

我需要从一个基于原型对象的系统的
LEAVE
原型创建一个
\u LEAVE
对象。
\u 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:对象不支持属性或方法“Ready” Left.js,第6行第5个字符

我不确定自己哪里出了问题,因为这似乎是系统其他部分正在发生的事情。至少,类似的事情正在发生,但我正努力将我的思想围绕在旧代码上


如果有人能给我任何建议,我将不胜感激!:-)

我不确定是否正确理解了您,但您是否正在尝试创建
LEAVE
对象的实例?如果是这样,
LEAVE
需要是一个构造函数,
Ready
应该是
原型上的一个方法:

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
属性的副本)。

我不确定是否正确理解了您的意思,但是您是否正在尝试创建
LEAVE
对象的实例?如果是这样,
LEAVE
需要是一个构造函数,
Ready
应该是
原型上的一个方法:

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
属性的副本)。

您在这里所做的只是从父LEAVE函数继承了子LEAVE函数。但是如果你想在子类中调用一个方法,你需要创建它的一个实例。所以你需要创建一个_LEAVE类的实例。只需添加这一行:

var_LEAVE_OBJECT=new_LEAVE()

并使用\u LEAVE\u OBJECT.Ready()代替_LEAVE.Ready();美元(文档)。准备好了

修改代码:

var LEAVE = function () {

}

$(document).ready(function () {
 _LEAVE_OBJECT.Ready();
});


var _LEAVE = function (params) {
   this.Ready = function () {
    alert ("Leave Ready");
    };  
}
_LEAVE.prototype = new LEAVE();
var _LEAVE_OBJECT = new _LEAVE();

您在这里所做的只是从父休假函数继承了子休假函数。但是如果你想在子类中调用一个方法,你需要创建它的一个实例。所以你需要创建一个_LEAVE类的实例。只需添加这一行:

var_LEAVE_OBJECT=new_LEAVE()

并使用\u LEAVE\u OBJECT.Ready()代替_LEAVE.Ready();美元(文档)。准备好了

修改代码:

var LEAVE = function () {

}

$(document).ready(function () {
 _LEAVE_OBJECT.Ready();
});


var _LEAVE = function (params) {
   this.Ready = function () {
    alert ("Leave Ready");
    };  
}
_LEAVE.prototype = new LEAVE();
var _LEAVE_OBJECT = new _LEAVE();

看起来您对JS中原型是如何工作的还不是很了解。不过你有点接近了。我相信很快就会有人给你正确的答案,但与此同时,看看这个关于原型的快速图坦卡蒙:看起来你还不太了解原型在JS中是如何工作的。不过你有点接近了。我相信很快就会有人给你正确的答案,但与此同时,看看这个关于原型的快速图坦卡门:如果你发现上面的代码对你有用,请把它标记为有用。因为我甚至没有将一个问题标记为有用:)如果你发现上面的代码对你有用,请将它标记为有用。因为我甚至不认为一个问题有用:)