创建一个_new方法 -- p14-3-1

2019-12-17  本文已影响0人  增商
说明:

创建一个_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>
上一篇 下一篇

猜你喜欢

热点阅读