据我了解,在JavaScript中每个对象都有一个原型prototype
,并公开一些默认属性。我有以下代码,我正在尝试通过prototype
设置两个对象的年份属性。但是这两个调用都失败了。
如果我没有访问prototype
,我该如何覆盖任何对象的toLocalString()
?请注意,以下代码是用于测试prototype
属性,但我的意图是覆盖toLocalString()
方法。
var car = {
Make: 'Nissan',
Model: 'Altima'
};
car.Year = 2014;
alert(car.Year);
alert(car.prototype); // returns undefined
car.prototype.Year = 2014; // Javascript error
// --------------
function Car() {
this.Make = 'NISSAN';
this.Model = 'Atlanta';
}
var v = new Car();
v.prototype.Year = 2014; // JavaScript error
alert(v.prototype);
Car.prototype.Year = 2014
- 您在对象函数上设置了原型,而不是已创建的实例。 - tymeJVtoLocaleString()
而不是toLocalString()
吗?还是你想要实现自己的方法toLocalString()
? - keenthinkerprototype
属性属于 函数。当使用new
调用该函数以构造实例对象时,函数会使用该prototype
属性。在非函数对象上设置prototype
没有任何效果。 - apsillers