Javascript构造函数重写
Javascript constructor overriding
这是一个函数示例:
function User (name) {
this.options.name = name;
};
User.prototype.options = {
name: 'Default'
};
var foo = new User('foo');
var bar = new User('bar');
console.log( foo.options.name ); // 'bar'
console.log( bar.options.name ); // 'bar'
问题是,如何获得"foo"answers"bar"?感谢
当您在构造函数的原型中添加任何内容时,这些内容将由所有实例共享。这对函数来说是最好的,但对数据来说可能不是。因此,您希望在构造函数本身中构造options
对象,就像这个
function User(name) {
this.options = {
name: name || "Default"
};
}
当您这样做时,每当创建User
的对象时,每个对象都将获得自己的options
对象。因此,用一个对象更改options
不会影响任何其他对象的options
。
相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 为什么构造函数不是构造函数
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 拦截对构造函数的调用
- 使用闭包共享构造函数参数
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 主干:无法重写构造函数
- 重写对象's构造函数's原型没有;不起作用
- Extjs3.4如何重写构造函数
- 重写Javascript Date构造函数
- 在构造函数中初始化的JavaScriptPrototype属性不会重写已分配的新原型
- 在JS中重写图像构造函数
- 用构造函数重写贝塞尔曲线
- 重写javascript日期构造函数
- Javascript构造函数重写
- 如何在javascript的构造函数中重写继承对象的属性?
- 如何在javascript中重写WebRTC的PeerConnection构造函数