對屬性的更改
嚴格模式還會阻止你刪除不可刪除的屬性。
"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
}