ES6——对象新的方法(原型)

对象新的方法(原型)

1、proto 指向原型对象,编码时性能较低下
console.log({a: 1});//打印出来的__proto__就是Object原型
2、Object.setPrototypeOf( 要修改的对象,想作为新的原型的对象) 修改对象的原型对象,
const obj1 = {
	a: 1
};
const obj2 = {
	b: 1
}
const obj = Object.create(obj1);//创建obj对象指定原型为obj1
console.log(obj.__proto__);//{a:1}
Object.setPrototypeOf(obj, obj2);
console.log(obj.__proto__);//{b:1}
3、Object.getPrototypeOf( 要读取的对象) 读取对象的原型对象,和直接去读取__proto__属性,是一样的。
const obj1 = {a: 1};
const obj = Object.create(obj1);

console.log(obj.__proto__);//{a:1}
console.log(Object.getPrototypeOf(obj));//{a:1}
console.log(obj.__proto__ === Object.getPrototypeOf(obj));//true
4、super:不是方法是关键字,指向的是当前对象(this指向的对象)的原型对象

获取原型对象上的属性和方法 只有使用对象的简洁表示法的时候才可以使用(:function(){ }与箭头函数都不可以)

const obj = {name: 'xiaoming'};
const cObj = {
	say() {
		console.log(`My name is ${super.name}`);
	}
}
Object.setPrototypeOf(cObj, obj);
cObj.say();// My name is xiaoming
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值