资讯专栏INFORMATION COLUMN

es5_Object

heartFollower / 1266人阅读

摘要:指定,打印打印打印用来给对象定义属性的可写可遍历可配置给对象指定对个属性打印,打印获取,设置用来获取属性的描述打印用来返回对象的值打印获取所有属性名打印让一个对象不可扩展,该对象无法再添加新的属性,但是可以删除现有属性对一个对象密封,该方法

es5_Object

creat(指定propto,):

let obj = {
        x:1,
        y:2
    };
//es5
    let obj2 = Object.create(obj,{
        z:{
            value:3
        }
    });
    
//es6
    let obj3={
        __proto__:obj,
        z:3
    }
    console.log(obj2);//打印Object {z: 3};
    console.log(obj3);//打印Object {z: 3};
    console.log(obj2.x);//打印1;

Object.defineProperty() 用来给对象定义属性的:

let obj = {
        x:1,
        y:2
    }
    obj.k=3;
    Object.defineProperty(obj,"j",{
            value:4,
            writable:true,  //可写
            enumerable:true,  //可遍历
            configurable:true  //可配置
    });

Object.defineProperties() 给对象指定对个属性:

Object.defineProperties(obj,{
        "m":{
            value:"m1"
        },
        "l":{
            value:"l1"
        }
    })
    obj.j=50;
    obj.k=50;
    console.log(obj);//打印Object {x: 1, y: 2, k: 50, j: 50, m: "m1",l:"l1"};
            
    for(var key in obj){
        console.log(key);//打印x y k j;
    };

获取,设置:

getOwnPropertyDescriptor()用来获取属性的描述:

console.log(Object.getOwnPropertyDescriptor(obj,"x"));//打印Object {value: 1, writable: true, enumerable: true, configurable: true};

Object.keys()用来返回对象的key值:

console.log(Object.keys(obj));//打印["x", "y", "k", "j"];

Object.getOwnPropertyNames()获取所有属性名:

console.log(Object.getOwnPropertyNames(obj));//打印["x", "y", "k", "j", "m", "l"];

Object.preventExtensions():

Object.preventExtensions(obj);
//让一个对象不可扩展,该对象无法再添加新的属性,但是可以删除现有属性;

Object.seal() :

Object.seal(obj);
//对一个对象密封,该方法会阻止对象扩展,并将该对象的所有属性设置为不可配置;

Object.freeze() :

Object.freeze(obj);
//对一个对象进行冻结,实现常量的需求,该方法会阻止对象扩展,并冻结对象,将其所有属性设置为只读和不可配置;

Object.isExtensible():

Object.isExtensible(obj);
//判断对象是否扩展;

Object.isSealed():

Object.isSealed(obj);
//判断对象是否密封;

Object.isFrozen():

Object.isFrozen(obj);
//判断对象是否冻结;
//writable:false不可改,true可改;
//enumerable:false不可遍历,true可遍历;
//configurable:false不可配置,true可配置;

"use strict":

严格模式 1.弃用了很多以前版本的语法,如果在用的话就提示错误;

严格模式 2.让你使用一些最新版本的语法;有些浏览器不支持新版本的语法,加上严格模式就支持了;

下面就是严格模式总结::

1.使用var声明变量严格模式中将不通过
2.何使用"eval"的操作都会被禁止
3.val作用域
4.ith被禁用
5.aller/callee 被禁用
6.禁止扩展的对象添加新属性会报错
7.除系统内置的属性会报错
8.delete使用var声明的变量或挂在window上的变量报错
9.delete不可删除属性(isSealed或isFrozen)的对象时报错
10.对一个对象的只读属性进行赋值将报错
11.对象有重名的属性将报错
12.函数有重名的参数将报错
13.八进制表示法被禁用
14.arguments严格定义为参数,不再与形参绑定
15.函数必须声明在顶层
16.ES5里新增的关键字不能当做变量标示符使用,如implements, interface, let, package, private, protected, pulic, static, yield
17.call/apply的第一个参数直接传入不包装为对象
18.call/apply的第一个参数为null/undefined时,this为null/undefined
19.bind的第一个参数为null/undefined时,this为null/undefined

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84232.html

相关文章

  • es5特性 es5语法,javascript语法

    摘要:特性新增的等方法,其中的方法在中被标准话的反序列化小勇小刚大勇小花小黑小白用来将字符串转成对象的反序列化的序列化小勇小刚大勇小花小黑小白将对象转成字符串的序列化字符串下列方法全部跟回调函数迭代方法数组遍历可传值数组遍历可传值返回数组,数组 es5特性 es5新增的string、number、object、Date、function、json等方法,其中json的方法在es5中被标准话!...

    wangshijun 评论0 收藏0

发表评论

0条评论

heartFollower

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<