在Javascript中为派生类定义构造函数
Defining a constructor for a derived class in Javascript
传统的观点是,要在Javascript中模拟OOP,我们需要在函数和原型方面做一切:
var fooObject = function () {
//Variables should be defined in the constructor function itself,
//rather than the prototype so that each object will have its own variables
this.someProperty = 5; //Default value
};
//Functions should be defined on the prototype chain so that each object does not
//have its own, separate function methods attached to it for performing the same
//tasks.
fooObject.prototype.doFoo = function () {
//Foo
}
现在,要创建派生类,我们需要:
var derivedFromFoo = new foo();
但是,如果我们想在派生对象的构造函数中做一些其他事情,会发生什么呢?喜欢设置其他属性吗?我们能做一些类似的事情吗
var derivedFromFoo = function () {
this = new foo();
};
new foo();
那是一个实例,而不是一个类。
要创建派生类,需要创建一个新函数,从函数内部调用基ctor,然后将新函数的prototype
设置为从基prototype
:创建的对象
function Derived() {
Base.call(this);
}
Derived.prototype = Object.create(Base.prototype);
有关更多详细信息和更长、更正确的实现,请参阅我的博客文章。
相关文章:
- typescript定义构造函数或函数
- 使用index.ts文件导出类会导致注入的构造函数中未定义
- 在HTML集合上迭代,以便在构造函数中动态定义值
- Javascript:继承原型而不重新定义构造函数
- 由于angular定义的构造函数,Lodash-isEqual失败
- 在构造函数中定义函数会比将其附加到原型消耗更多的内存
- 属性在我的自定义构造函数中无法正常运行 - Javascript
- 在Javascript构造函数中定义属性的正确方式
- Angular 2 Component自定义属性在构造函数中为null
- AngularJS和Angular Snap:SSnap构造函数未定义
- 在定义了构造函数之后,是否可以将实例属性添加到JavaScript原型中
- 使用默认值定义构造函数.我这样做对吗?
- 自定义构造函数猫鼬
- 为什么我们需要在 JavaScript 中定义构造函数
- 主干.js自定义构造函数
- 在Javascript中为派生类定义构造函数
- 使用这种JavaScript编码模式来定义构造函数的优点是什么
- RequireJS:如何定义构造函数
- 在Javascript中定义构造函数时遇到麻烦
- 在对象的子函数中定义构造函数