第三章:javascript对象的基本操作

1、Object.assign() – ES6

通过复制一个或多个对象来创建一个新的对象
const target = { a: 1, b: 2,d:3 };
const source = { b: 4, c: 5 };

let a = Object.assign(target,source)

console.log(a,"二分分")
console.log(source,"要")

2、Object.create()

使用指定的原型对象和属性创建一个新对象。 
let person = {
        isHuan:false,
        yai:()=>{
            console.log("fefes")
        }
    }

   const me =  Object.create(person)
    //把person加入到了me原型上了
   console.log(me)

3、Object.defineProperty()

给对象添加一个属性并指定该属性的配置。
let person = {
        isHuan: false,
        yai: () => {
            console.log("fefes")
        },
        name: ""
    }
    
   //制作访问器
    Object.defineProperty(person, "name", {
        get(){
            console.log(name,"get")
            return name
        },
        set(val){
            name = val
            console.log(name,"set")
        },
    })
    
    Object.defineProperty(person,"name",{
        value:"逆风",
         writable: true,//可修改
        enumerable: true,//可枚举
        configurable: true //可操作/删除
    })

    console.log(person)
    person.name = "chenfulong"
    person.name

4、Object.defineProperties()

 let person = {
        name: ""
    }

    Object.defineProperties(person,{
        "name":{
            set(val){
               
                name = val
                console.log(name,"set")
            },
            get(){
                console.log(name,"name")
                return name
            }
        },
        "age":{
            value:12,
            writable:true,
            enumerable:true,
            configurable:true
        }
    })
    person.name = "yaohf"
    person. name
    console.log(person)

5、Object.entries() – ES6

返回给定对象自身可枚举属性的[key, value]数组。

    let person = {
        name: "yaohf",
        age:12,
        sex:"男",
        class:"131班"
    }

    for(let [a,b] of Object.entries(person)){
        console.log(a,b)
    }
    
输出:
    name yaohf
    age 12
       sex 男
    class  131班

6、Object.is() – ES6

比较两个值是否相同。所有 NaN 值都相等(这与和=不同)
Object.is('foo', 'foo');     // true
Object.is(window, window);   // true

Object.is('foo', 'bar');     // false
Object.is([], []);           // false

var foo = { a: 1 };
var bar = { a: 1 };
Object.is(foo, foo);         // true
Object.is(foo, bar);         // false

Object.is(null, null);       // true

// 特例
Object.is(0, -0);            // false
Object.is(-0, -0);           // true
Object.is(NaN, 0/0);         // true

7、Object.keys() – ES6

返回一个包含所有给定对象自身可枚举属性名称的数组。
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']

var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']

var anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // console: ['2', '7', '100']

var myObj = Object.create({}, {
  getFoo: {
    value: function () { return this.foo; }
  } 
});
myObj.foo = 1;
console.log(Object.keys(myObj)); // console: ['foo']

8、Object.values() – ES6

返回给定对象自身可枚举值的数组。
var obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]

var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.values(obj)); // ['a', 'b', 'c']

var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.values(an_obj)); // ['b', 'c', 'a']

var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
my_obj.foo = 'bar';
console.log(Object.values(my_obj)); // ['bar']

console.log(Object.values('foo')); // ['f', 'o', 'o']

9、hasOwnProperty()

方法用于检测一个对象是否含有特定的自身属性,返回一个布尔值
 let person = {
        name: "yaohf",
        age:12,
        sex:"男",
        class:"131班"
    }
   
   console.log(person.hasOwnProperty("age"))
   输出:true
   
   function Fn() {
      this.age = 'wm'
    }
    Fn.prototype.sex = '女'
    var obj = new Fn()
    //  实例化对象会继承构造函数里的属性和方法
    console.log(obj.hasOwnProperty('age')) // true
    console.log(Fn.prototype.hasOwnProperty('age')) //false
    console.log(Fn.prototype.hasOwnProperty('sex')) //true
    console.log(obj.hasOwnProperty('sex')) // false

10、isPrototypeOf()

isPrototypeOf()

用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。

isPropertyOf()
利用isPropertyOf()检查一个对象是否存在一另一个对象的**原型链**上

11、instanceof

A instanceof B

A对象是否是B对象的实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值