首页 > 其他 > 详细

Object函数的内置方法

时间:2021-06-15 16:48:33      阅读:28      评论:0      收藏:0      [点我收藏+]

一、Object.seal()

  Object.seal()方法用于密封一个对象,即将对象设置为不可扩展,同时将对象的所有自有属性都设置为不可配置(包括Symbol值的属性)。也就是说,不能给对象添加新的属性和方法,也不能删除现有的属性和方法、不能修改现有属性和方法的配置。但如果对象的属性和方法是可写的,那该属性和方法仍然可以修改。

  语法:

Object.seal(obj);

  参数:

    obj要被密封的对象。

  返回值:

    被密封的对象。

  该操作不会影响从原型对象继承来的属性和方法,即只影响自有的属性和方法。一旦对象被密封,则不能修改其属性和方法的配置,一个数据属性不能被重新定义成访问器属性,也不能从访问器属性修改为数据属性。

  在ES5中,如果传递给方法的参数不是一个对象,会抛出TypeError异常。

  在ES6中,如果传递给方法的参数不是一个对象,则会被视为已被密封的普通对象,直接返回它。

  示例一:密封一个对象

let obj = { 
    a: 1,
    b: function () { console.log(2); },
    [Symbol(‘c‘)]: 3
};
Object.getOwnPropertyDescriptors(obj);
/*
{
    a: {value: 1, writable: true, enumerable: true, configurable: true},
    b: {value: ?, writable: true, enumerable: true, configurable: true},
    Symbol(c): {value: 3, writable: true, enumerable: true, configurable: true}
}
*/
Object.seal(obj);
Object.getOwnPropertyDescriptors(obj);
/*
{
  a: {value: 1, writable: true, enumerable: true, configurable: false},
  b: {value: ?, writable: true, enumerable: true, configurable: false},
 Symbol(c): {value: 3, writable: true, enumerable: true, configurable: false}
}
*/

 

Object函数的内置方法

原文:https://www.cnblogs.com/qc-one/p/14884722.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!