我用javascript訪問性能打(我從零重新開始學習JavaScript的),試圖創建getter和setter一個簡單的對象,這裏的代碼:訪問者:二傳手不起作用
var dummy = {
name: 'empty',
description: 'static description',
get nameAccessor(){return 'name value is: ' + this.name;},
set nameAccessor(value){ this.name = value;},
get descAccessor(){return 'desccription value is: ' + this.description;},
};
console.log(dummy.nameAccessor);
console.log(dummy.nameAccessor('Mazinga'));
console.log(dummy.nameAccessor);
但當它執行的setter代碼
Uncaught TypeError: Property 'nameAccessor' of object # is not a function
:
console.log(dummy.nameAccessor('Mazinga'));
這是怎麼回事,它拋出一個錯誤這裏錯了嗎?
EDIT:
好的,這似乎是不公知的JavaScript的特徵,布提隨後從 Javascript: Definitive Guide
var o = {
data_prop: value,
get accessor_prop() { /* function body here */ },
set accessor_prop(value) { /* function body here */ }
};
對象屬性始終可見。那裏不需要獲得者。你想要做的是使用一個函數並在return語句中公開一些變量。 – Christoph