对属性的更改
严格模式还会阻止你删除不可删除的属性。
"use strict";
delete Object.prototype; // throws a TypeError
如果不使用严格模式,则会忽略上述语句,但是现在你知道它为什么不按预期执行。
它还会阻止你扩展不可扩展的属性。
var myObject = {name: "My Name"}
Object.preventExtensions(myObject);
function setAge() {
myObject.age = 25; // No errors
}
function setAge() {
"use strict";
myObject.age = 25; // TypeError: can't define property "age": Object is not extensible
}