var vehicle = function(){
var type;
var tyre;
this.tellTyres = function(){
console.log(type + " has " + tyre + " tyres");
};
this.__defineGetter__("type", function(){
return type;
});
this.__defineSetter__("type", function(val){
type = val;
});
this.__defineGetter__("tyre", function(){
return tyre;
});
// this.__defineSetter__("tyre", function(val){
// tyre = val;
// });
};
var car = new vehicle();
car.type = "Car";
car.tyre = 4;
console.log(car.tyre);
car.tellTyres();
我正在瞭解getter和setter。然後我意識到Javascript在設置car.tyre
的值時沒有拋出任何錯誤,而沒有其setter方法。當在javascript中設置對象屬性時沒有設置器會發生什麼情況
構造函數之外的car.tyre
屬性會發生什麼情況。價值4存儲在哪裏?它是否覆蓋?
哦,console.log輸出「undefined」。呃...爲什麼這樣呢? –
如果你正在學習,請注意,這個特性'__defineGetter__'已被棄用,而使用'Object.defineProperty()' – Agalo
這本書在ECMAScript 3.1中介紹。感謝您告訴...將探討'defineProperty()'。你有什麼線索'defineSetter'方法嗎? –