javascript 对象
object.assign()
- 可以接受任意多供应者,后面的供应者可以覆盖前面供应者的同名属性
- 相当于浅拷贝
修改对象原型
- ES5 添加
Object.getPrototypeOf()
来获取指定对象的原型 - ES6 添加
Object.setPrototypeOf()
来修改指定对象的原型
let person = {
getGreeting () {
return "hello"
}
}
let dog = {
getGreeting () {
return "woof"
}
}
//原型为 person
let friend = Object.create(person)
console.log(friend.getGreeting()) //hello
console.log(Obejct.getPrototypeOf(friend) === person) //true
//修改原型为 dog
Object.setPrototypeOf(friend,dog);
console.log(friend.getGreeting()) //woof
console.log(Obejct.getPrototypeOf(friend) === dog) //true
使用 super 引用的简单原型访问
let friend = {
getGreeting() {
// 以下两者是相等的
// Object.getPrototypeOf(this).getGreeting.call(this)
return super.getGreeting() + "hi!";
}
}
能使用 super 来调用原型上的任何方法,只要这个方法是位于简写之内