var obj = { name:"Tom" }; var newObj = Object.create(obj); delete newObj.name;//It never works! console.log(newObj.name);//name is still there
您可以通过访问父对象来删除该属性:
delete Object.getPrototypeOf(newObj).name;
(更改父对象)
您也可以通过将值设置为未定义(例如):
newObj.name = undefined;
但是,由于原型查找了prototype chain,直到找到它,您无法从newObj中删除该属性,而不从父对象中删除该属性.