假设我有一个如下定义的对象(取自here)
function Foo (val) {
this.bar_ = val + val;
}
Foo.prototype = {
get bar() {
return this.bar_;
},
set bar(val) {
this.bar_ = val + val;
}
};
var foo = new Foo('bar');
然后设置并获取属性会相应地返回它们
console.log(foo.bar); // 'barbar'
foo.bar = 'baz';
console.log(foo.bar); // 'bazbaz'
但是有没有办法将对象的getter绑定到属性的值,如此
console.log(foo); // 'bazbaz'
或者这会在尝试与属性进行交互时产生问题,因为foo.someMethod()
实际上是'bazbaz'.someMethod()