美文网首页
JS中的原型我们来搞懂它

JS中的原型我们来搞懂它

作者: 羞羞的王大锤 | 来源:发表于2020-03-17 23:25 被阅读0次

    原型是什么?

    JavaScript对象可以从其他对象那里继承属性和行为,更具体的来说,JavaScript使用原型式继承,其中被继承的对象成为原型。我们举个例子来说
    比如我们创建一个小狗的原型,它有属性分别是name和weight,它有方法是bark

    function Dog(name,weight){
        this.name = name;
        this.weight = weight;
    }
    Dog.prototype.bark = function(){
            alert('wang wang !')
        }
    

    上面我们就创建好了小狗原型。你可能会发现,这里使用了prototype属性,它代表一个指向原型的引用
    在我的另一篇文章中,介绍了构造函数,分析了构造函数的缺点,即使用构造函数时,每创建一个对象时,方法需要被复制,创建对象多时,会极大占用内存资源,影响应用程序的运行效率

    而原型概念则完美的解决了这一问题。我们来创建几个小狗对象

    var wangcai = new Dog('wangcai','20')
    var xiaoqiang = new Dog('xiaoqiang','10')
    var zhaocai  = new Dog('zhaocai','15')
    wangcai.bark() 
    xiaoqiang.bark()
    zhaocai.bark()
    

    正如上面的例子,这些小狗对象,都有brak方法,但是,在创建对象的时候bark方法不需要被复制,这里调用的bark方法只有一个,那就是原型的方法,JavaScript在查找方法的过程是这样的:

    1. 在对象中查找有没有定义bark方法
    2. 有则调用,没有定义它就会追溯原型链,直到找到bark之后再调用方法。这样一来不管创建多少个对象,都不会受影响,因为大家都共用一个方法,实现了共享

    相关文章

      网友评论

          本文标题:JS中的原型我们来搞懂它

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