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();
私はゲッターとセッターについて学んでいました。次に、setterメソッドを持たずにcar.tyre
の値を設定している間にJavascriptでエラーが発生していないことがわかりました。javascriptでセッターなしのオブジェクトプロパティを設定するとどうなりますか
コンストラクタ外のcar.tyre
プロパティはどうなりますか?値4はどこにありますか?それは上書きされますか?
Ohとconsole.logが "undefined"を出力します。うーん...なぜそう? –
学習している場合、この機能 '__defineGetter__'は廃止されました。代わりに' Object.defineProperty() 'を使用してください。 – Agalo
本はECMAScript 3.1で導入されました。話してくれてありがとう... defineProperty()について探求します。あなたは 'defineSetter'メソッドに何があるのか手掛かりはありますか? –