【发布时间】:2012-08-30 10:38:13
【问题描述】:
我正在使用 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);
但它会抛出一个错误:
未捕获的类型错误:对象# 的属性“nameAccessor”不是 一个函数
当它执行setter代码时:
console.log(dummy.nameAccessor('Mazinga'));
这里出了什么问题?
编辑:
好的,这似乎不是javascript的一个众所周知的功能,但我从这个例子 Javascript: Definitive Guide
var o = {
data_prop: value,
get accessor_prop() { /* function body here */ },
set accessor_prop(value) { /* function body here */ }
};
【问题讨论】:
-
对象属性始终可见。那里不需要吸气剂。您可能想要做的是使用一个函数并在 return 语句中公开一些变量。
标签: javascript