说明:
创建一个_new方法模拟new实例==>目标:调用Dog其它类对象的方法
image.png
第一步
分析
image.png
第二步
image.png
第三步
image.png
当我们new一个实例对象时,我们这个对象的内部到底发生了什么?
1:
image.png
2:
image.png
最终代码:
p14-Dog(name).html 参考:P14-3-2 -- 创建_new()方法
<script>
function Dog(name) {
this.name = name;
}
Dog.prototype.sayName = function() {
console.log('MyNameis:' + this.name);
};
Dog.prototype.sayHello = function() {
console.log(this.name + ': wang wang');
};
//=>Fn当前要new的类
//=>...arg后期需要给类构造函数传参的信息
function _new(Fn, ...arg) {
// let obj = {}
// obj.__proto__ = Fn.prototype
let obj = Object.create(Fn.prototype)
Fn.call(obj, ...arg);
return obj
}
let imycode = _new(Dog, 'imycode')
imycode.sayName()
imycode.sayHello()
console.log(imycode instanceof Dog);
</script>
网友评论