3
>>> var par = {a: 1, b: 2};
undefined
>>> var ch = Object.create(par);
undefined
>>> delete ch.a
true
>>> ch
Object { a=1, b=2}
4

1 に答える 1

4

delete が返すものを誤解しています:

プロパティが独自の構成不可能なプロパティである場合は、厳密モードでスローします (厳密でない場合は false を返します)。それ以外の場合は true を返します。( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete )

delete ch.aaでプロパティを見つけようとしますがch、失敗し (そのような独自のchプロパティがないため)、何もせずに を返します。と書いても結果は同じです。ただし、構成不可能なプロパティ (例: ) を試した場合、結果は になります。truedelete ch.foobardelete ch.__proto__false

于 2013-09-07T17:59:49.960 に答える