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),这样如果我们创建很多个对象,就会额外生成很多一样的方法,这样浏览器的内存开销就会巨大,占用计算机资源,影响应用程序的性能。
所以我们不能仅仅依靠构造函数去创建一直的函数
那能不能有办法可以重用这些方法而不用每次复制呢?
方法当然有,要解决这个问题,我们需要认识另外一个重量级的人物--原型
预知后事,请听下回分解!
今天我们不在这儿讲原型啦,如果你对原型感兴趣,请您移步查看我有关原型的文章,希望对你有用!
最后 🙌
好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞👍哦,阿门~