在Javascript中构造函数之前定义对象的方法?

时间:2013-12-28 20:49:11

标签: javascript constructor

是否有可能比Javascript中的构造函数更早地删除类的方法?

类似的东西:

MyObj.prototype.fcn = function () {};
MyObj = function () {};

那是因为我想将实例方法分离到另一个文件,但最好比使用构造函数的文件更早加载该文件。

最好的解决方案是,如果它不依赖于首先加载哪个文件。

提前致谢。

3 个答案:

答案 0 :(得分:1)

<强> EDITED

这是原型继承的基本实现。您可以在“文件1”中创建构造函数并向其添加属性。然后在“文件2”中,您可以继承早期创建的构造函数中的属性,如下所示:

// File 1
var Dummy = function () { /* A */}; // Dummy needs to be able to refer globally
Dummy.prototype.methodA = function () {alert(this.constructor);};

// File 2
var BConstructor = function () { /* B */};
BConstructor.prototype = new Dummy(); // Include properties of Dummy too
BConstructor.prototype.methodB = function () {alert(this.constructor);}; // Create more properties if needed
BConstructor.prototype.constructor = BConstructor; // Make sure BConstructor will be the constructor of future-created objects

var a = new BConstructor();
a.methodA();
a.methodB();

答案 1 :(得分:0)

无法改变尚未定义的对象的原型。

答案 2 :(得分:0)

在文档准备就绪后,尝试延迟设置原型方法。