水木社区手机版
首页
|版面-Web开发(WebDev)|
新版wap站已上线
返回
1/1
|
转到
主题:js访问器属性
楼主
|
ename
|
2015-03-28 23:41:31
|
展开
在javascript高级程序设计6.1.2节中讲到的访问器属性测试失败,哪里有错误呢?
环境:mac + chrome、mac + firefox
代码如下:
var user = {
name: 'ename'
};
user.__defineSetter__('name', function(val) {
console.log(val);
this.name = val;
});
user.__defineGetter__('name', function() {
return this.name;
});
user.name = 'newname';
换成ObjectProperty也是一样失败。
Object.defineProperty(user, 'name', {
get: function() {
return this.name;
},
set: function(val) {
this.name = val;
}
});
js执行后,变成了一个死循环。到底是哪里错误了呢?
--
FROM 123.119.76.*
2楼
|
ename
|
2015-03-28 23:55:02
|
展开
谢谢,确实是这个问题
书上的例子对象的属性就是_开通,我自己写的时候就去掉了。
后面又没有讲到在修改访问器属性时必须要有_
这个例子太坑人了
【 在 nilnul 的大作中提到: 】
: 改成:
: Object.defineProperty(user, 'name', {
: get: function() {
: ...................
--
FROM 123.119.76.*
4楼
|
ename
|
2015-03-29 00:03:53
|
展开
为什么name这个不行呢?
是因为name是函数对象的的一个属性,不可更改?
【 在 nilnul 的大作中提到: 】
: 你还没明白。
: 那个_name改成 abc也可以,就是不能使name。
:
--
FROM 123.119.76.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版