更改使用Object.create()声明的对象的属性

时间:2011-04-03 09:17:31

标签: javascript

有什么问题?

var yie = Object.create({}, {

                'currentDoAction': {
                    value: null,
                    enumerable: true,
                    writeable: true
                },

                'success': {
                    value: function(result) {
                        this.currentDoAction = "should be changed";
                        console.log(this.currentDoAction); // prints out null ... why ?
                    },
                    enumerable: true,
                    writeable: true,
                }

});

请参阅success函数中的注释,其中this.currentDoAction仍然显示为null,即使它应该在之前的行中进行更改。

2 个答案:

答案 0 :(得分:3)

问题在于您拼错writable(nb:否“e”),因此会忽略属性键,而是使用默认值writable: false

有关正常工作的版本,请参阅http://jsfiddle.net/szLju/

答案 1 :(得分:1)

我可以看到的一个问题是你有一个逗号,有些浏览器不喜欢这样:

writeable: true,
               ^