您现在的位置是:课程教程文章
js使用构造函数的缺点
2023-12-13 23:02课程教程文章 人已围观
1、不是原型链继承,只是借用构造函数,所以不能继承原型的属性和方法。
2、虽然构造函数中定义的属性和方法是可以访问的,但是每个实例都被复制了。
如果例子太多,方法太多,占用内存很大,那么方法就在构造函数中定义,函数的复用就无从谈起。
实例
//父构造函数 functionFather(){ this.name='father' this.speakName1=function(){ console.log('speakName1') } this.speakName2=function(){ console.log('speakName2') } this.speakName3=function(){ console.log('speakName3') } this.speakName4=function(){ console.log('speakName4') } } //父原型上方法 Father.prototype.alertName=function(){ console.log(this.name) } //父原型上属性 Father.prototype.age=21 //子构造函数 functionChildren(){ Father.call(this) } //创建子实例 letc1=newChildren() //调用原型方法,实例访问不到 c1.alertName() //TypeError:c1.alertNameisnotafunction //访问原型属性,实例中未定义 console.log(c1.age) //undefined //可以访问实例属性,但是每个实例都存有自己一份name值 console.log(c1.name) //father //可以访问实例方法,但是每个实例都存有自己一份speakName1()方法, //且方法过多,内存占用量大,这就不叫复用了 c1.speakName1()//speakName1 c1.speakName2()//speakName2 c1.speakName3()//speakName3 c1.speakName4()//speakName4 //instanceofisPrototypeOf无法判断实例和类型的关系 console.log(Father.prototype.isPrototypeOf(c1))//false console.log(c1instanceofFather)//false
以上就是js使用构造函数的缺点,希望对大家有所帮助。更多js学习指路:js教程
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。
课程教程:js使用构造函数的缺点上一篇:如何走进Python的大门?
下一篇:没有了