美文网首页
创建一个_new方法 -- p14-3-1

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

作者: 增商 | 来源:发表于2019-12-17 12:33 被阅读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>

相关文章

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

    说明: 创建一个_new方法模拟new实例==>目标:调用Dog其它类对象的方法 image.png 分析imag...

  • Objective-C基础学习之new方法实现原理

    1.new方法实现原理 完整的创建一个可用的对象:Person *p=[Person new]; new方法的内部...

  • composer Package 引用方式

    1.创建方法1 ①创建new file; ②在new file里面创建一个新的composer.json; ③在c...

  • Python的new与init

    Python的new与init 区别 new方法是在init方法前被调用的。new负责创建,init负责创建后的赋...

  • Python的new与init

    Python的new与init 区别 new方法是在init方法前被调用的。new负责创建,init负责创建后的赋...

  • 对象

    1、创建一个对象(两种方法) 1.1 直接通过new关键词创建 var obj = new object()...

  • Java四种创建对象方式

    1,创建的new关键字创建对象 new HelloWorld(); 2,使用newInstance()方法 例如:...

  • 单例

    new实现单例 new至少要有一个参数cls,代表要实例化的类,new方法负责创建一个实例对象,在对象被创建的时候...

  • OC 构造方法

    1. new方法实现原理 自动调用构造方法,完整的创建一个可用的对象:Person *p=[Person new]...

  • Array数组的方法你知道吗?

    数组创建的方法 使用new+array构造函数创建数组(new也可以省略) 字面量方法创建数组 检测是否是数组的两...

网友评论

      本文标题:创建一个_new方法 -- p14-3-1

      本文链接:https://www.haomeiwen.com/subject/mljsnctx.html