老师看一下
来源:6-6 新的方法(新方法)
宝慕林4466778
2020-07-29 16:58:44
const obj = {name: 'xiaoming'};
const cObj = {
say() {
console.log(`My name is ${super.name}`);
}
}
Object.setPrototypeOf(cObj, obj);
const obj = {name: 'xiaoming'};
const cObj = {
say() {
console.log(`My name is ${this.name}`);
}
}
cObj.say.call(obj)
感觉很像啊 其实是改变指向?
super 就是指向原型吗?
还有个问题是 __proto__ 和prototype 的区别 以往的课好像提到过忘了
1回答
同学你好,问题解答如下:
1. 在当前例子中,setPrototypeOf方法和call方法,的确很像,可以理解成改变了this的指向。
2.在当前例子中,super是指向原型的。之前讲过静态方法,即static关键字定义的方法,在静态方法中,super指向父类。
3. “__proto__”是实例的属性,该属性指向构造函数的原型prototype;而prototype是构造函数的原型对象,二者关系如下:
如果我的回答帮到了你,欢迎采纳,祝学习愉快!