JS中构造函数的缺点你造么?

2020-03-16  本文已影响0人  羞羞的王大锤

我们都知道,构造函数就像是一个模具一样,通过它可以创造出多个一致的对象,它可以规定属性还能定义统一的方法,就如同下面的例子

function Dog(name,weight){
    this.name = name;
    this.weight = weight;
    this.bark= function(){
        alert('wang wang !')
    }
}
var wangcai = new Dog('wangcai','20')

这里根据构造函数Dog,我们能创建一致的小姑对象,生成的小狗对象都有名字和重量,并且都可以汪汪汪。

这样似乎很完美,我只要创建一个构造函数,然后我就可以创造出千千万万个一致的对象啦,但这里也有着巨大的缺陷,你知道吗?

构造函数的缺点

根据构造函数创造的对象会极大的影响着浏览器的内存,影响系统的运行效率,为什么这么说呢?

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

当我们在使用构造函数创建每一个对象时,都会将构造函数的方法复制一份给新的对象(这里Dog构造函数的方法是bark),这样如果我们创建很多个对象,就会额外生成很多一样的方法,这样浏览器的内存开销就会巨大,占用计算机资源,影响应用程序的性能。

所以我们不能仅仅依靠构造函数去创建一直的函数

那能不能有办法可以重用这些方法而不用每次复制呢?

方法当然有,要解决这个问题,我们需要认识另外一个重量级的人物--原型

预知后事,请听下回分解!

今天我们不在这儿讲原型啦,如果你对原型感兴趣,请您移步查看我有关原型的文章,希望对你有用!

最后 🙌

好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞👍哦,阿门~

上一篇下一篇

猜你喜欢

热点阅读