首页 > IT职业 > IT图书 > ES6 关于对象的扩展
let person={ 'name':'zhang', 'age':'20', 'play':function(){
alert('play!')
}
}
var name='zhang';var age=20;var person={name,age};console.log(person) // {name: "zhang", age: 20};
var person={
play(){
alert('ES6 中的play!');
}
}
var m="my";var n="name";var p="play";var person={
[ m+n ]:'zhang',
[ m+p ](){ return "play";
}
};console.log(person.myname)// zhangconsole.log(person.myplay)// play
var str='20';var age=20;// 抽象相等str == age // true// 严格相等str === age // false
var str='20';var mine=20;var her=20;Object.is(str,mine) // falseObject.is(mine,her) // true
// 可看做目标对象let target={'a':1};// 可看做源对象let origin={"b":2,"c":3};Object.assign(target,origin);console.log(target);// {a: 1, b: 2, c: 3}
// 可看做目标对象let target={'a':1};// 可看做源对象let origin1={"b":2,"c":3};let origin2={"d":4,"e":5};Object.assign(target,origin1,origin2);console.log(target);// {a: 1, b: 2, c: 3, d: 4, e: 5}
let arr=['z'.'h','a','n','g'];let arr2=Object.assign([],arr);
arr2.push('end');
console.log(arr2); // ['z'.'h','a','n','g','end']
console.log(arr); //['z'.'h','a','n','g']
function Person(){ // 自定义一个Person类(函数)
}
Person.prototype = { // 函数都有一个预属性prototype对象
say(){ // 给prototype对象添加一个say方法
console.log('hello');
}
};
let zhang = new Person(); // 实例化Person对象,赋值给变量zhang
zhang.say(); //调用类的say方法 结果:hello
Object.getPrototypeOf(zhang); // 获取zhang对象的prototype属性
// 结果:{say:function(){.....}}
function Person(){ // 自定义一个Person类(函数)
}
Person.prototype = { // 函数都有一个预属性prototype对象
say(){ // 给prototype对象添加一个say方法
console.log('hello');
}
};
let zhang = new Person(); // 实例化Person对象,赋值给变量zhang zhang.say(); //调用类的say方法 结果:hello Object.setPrototypeOf( //使用Object.setPrototypeOf
zhang,
{
say(){console.log('hi')}
}
);
zhang.say(); //再次调用类的say方法 结果:hi
作者:前端喵
来源:https://my.oschina.net/u/3662721/blog/1793045
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3276/viewspace-2809010/ ,如需转载,请注明出处,否则将追究法律责任。