JavaScript Object.preventExtensions() 方法
JavaScript 中的Object.preventExtensions() 方法是标准的内置对象,可防止向对象添加新属性。
句法:
Object.preventExtensions( obj )
参数:此方法接受上面提到的单个参数,如下所述:
- obj:此参数包含必须使其不可扩展的对象。
返回值:该方法将对象设为不可扩展后返回。
下面的示例说明了 JavaScript 中的 Object.preventExtensions() 方法:
示例 1:
javascript
let geeks1 = {};
Object.preventExtensions(geeks1);
try {
Object.defineProperty(geeks1, 'prop1', {
value: "GFG",
property1:"Geeksforgeeks",
property2:"Best platform to learn"
});
} catch (error) {
console.log(error);
}
javascript
var geeks = {};
var geeks0 = Object.preventExtensions(geeks);
console.log( geeks0 === geeks);
const geeks1 = {"prop1": 555};
Object.preventExtensions(geeks1);
delete geeks1.prop1;
console.log ( geeks1.hasOwnProperty ( "prop1" ) );
const geeks2 = {};
Object.preventExtensions(geeks2);
geeks2.prop2 = 3;
console.log(
geeks2.hasOwnProperty("prop2")
);
const geeks3 = {};
Object.preventExtensions(geeks3);
console.log(
Object.isExtensible(geeks3)
);
输出:
TypeError: Cannot define property prop1, object is not extensible
示例 2:
javascript
var geeks = {};
var geeks0 = Object.preventExtensions(geeks);
console.log( geeks0 === geeks);
const geeks1 = {"prop1": 555};
Object.preventExtensions(geeks1);
delete geeks1.prop1;
console.log ( geeks1.hasOwnProperty ( "prop1" ) );
const geeks2 = {};
Object.preventExtensions(geeks2);
geeks2.prop2 = 3;
console.log(
geeks2.hasOwnProperty("prop2")
);
const geeks3 = {};
Object.preventExtensions(geeks3);
console.log(
Object.isExtensible(geeks3)
);
输出:
true
false
false
false
支持的浏览器: Object.preventExtensions() 方法支持的浏览器如下:
- 铬 6 及以上
- 边缘 12 及以上
- 火狐 4 及以上
- Internet Explorer 9 及更高版本
- Opera 12 及以上
- Safari 5.1 及更高版本