0
今天在玩弄一些宠物项目时,我遇到了一些我无法解释的特性。下面是从一个节点REPL日志:不可写的原型属性是否可以被映射?
> foo = Object.create({}, { toString: { value: function() { return 'bob' } } })
{}
> bar = Object.create(foo)
{}
> bar.toString()
'bob'
> bar.hasOwnProperty('toString')
false
> bar.toString = function() { return 'nope' }
[Function]
> bar.toString()
'bob'
这是我的期望bar.toString
将阴影foo.toString
,但是这似乎并没有发生。在创建foo
时,将toString
属性设置为writable: true
使其按预期工作。
不能写入的原型属性是否可以被映射?
清晰:需要注意的是任何属性名称不相同,“toString2”或“myProp”,这里不仅仅是“的toString” – dandavis 2015-02-08 00:56:16
的主要问题是非常有用这个问题一样:[从冻结的父对象创建新的对象](http://stackoverflow.com/questions/19698533/creating-new-objects-from-frozen-parent-objects) – 2015-02-08 02:57:32
@ Qantas94Heavy是对的,这个问题应作为副本关闭。感谢您的链接! – 2015-02-08 15:13:36