javascript构造函数有什么用

  介绍

小编给大家分享一下javascript构造函数有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>构造函数是原型对象上的一个属性,默认指向这个原型的构造函数

这个结论貌似对我们平时的工作中似乎并没有什么用处,那构造函数,就真的没什么用处吗?

使用构造函数构造可以复用的对象

JS中的函数即可以是构造函数又可以当作普通函数来调用,当使用新的来创建对象时,对应的函数就是构造函数,通过对象来调用时就是普通函数。

在我们平时工作中,经常会需要我们创建一个对象,而我们更多的是使用对像直接量,直接创建,举个栗子,代码如下

={var人   名称:& # 39;postbird& # 39;   地址:& # 39;大地# 39;   sayHello:函数(){console.log(& # 39;你好,我& # 39;+ this.name);}   };

如果只是一个单独的对象,对象的属性和方法基本不会变了,这么玩完全可以,但是如果你的对象有很多实例,或者涉及继承或者构造函数传参,留意代码注释

//创建了一个构造函数   函数的人(姓名,地址){   this.name=名称;   这一点。地址=地址;   }//为构造函数的原型对象添加一个方法sayHello   Person.prototype。sayHello=function () {   console.log(& # 39;嗨我& # 39;+ this.name);   }//通过构造函数人实例化一个p1,并传参   var p1=新人(& # 39;postbird& # 39; & # 39;大地# 39;);//通过构造函数人实例化一个p2,并传参   var p2=新人(& # 39;ptbird& # 39; & # 39;月# 39;);   console.log (p1);//{名称:“postbird",地址:“earth"}   console.log (p2);//{名称:“ptbird",地址:“month"}//p1和p2继承了人的sayHello方法//嗨我ptbird p1.sayHello ()   p2.sayHello()//嗨我postbird

耐心品位上面的代码,这样的可扩展性就会更好,可以创N个实例,实现代码复用

经典案例

关于js的构造函数构造函数,有一个很经典的演示

函数人(区域){   这一点。类型=& # 39;简历及# 39;;   这一点。面积=;   }   Person.prototype。sayArea=function () {   console.log (this.area);   }   var=父函数(年龄){   这一点。年龄=年龄;   }   的父亲。原型=新人(& # 39;北京# 39;);   console.log (Person.prototype.constructor===人)//真实的   console.log (Father.prototype.constructor===人);//正确的   Father.prototype。构造函数=父亲;//修正   console.log (Father.prototype.constructor===父亲);//正确的   var> Father.prototype。构造函数=父亲;//修正

为什么要修正?不是说<强>构造函数是原型对象上的一个属性,默认指向这个原型的构造函数> 我们把这一行打码注释掉

函数人(区域){   这一点。类型=& # 39;简历及# 39;;   这一点。面积=;   }   Person.prototype。sayArea=function () {   console.log (this.area);   }   var=父函数(年龄){   这一点。年龄=年龄;   }   的父亲。原型=新人(& # 39;北京# 39;);   console.log (Person.prototype.constructor===人)//真实的   console.log (Father.prototype.constructor===人);//正确的//Father.prototype。构造函数=父亲;//修正   console.log (Father.prototype.constructor===父亲);//错误   var>的父亲。原型=新人(& # 39;北京# 39;);

这一步的时候,原型指向了一个新对象,这个新对象的构造函数指向的是人。

控制台。日志((新人(& # 39;北京# 39;))。__proto__===Person.prototype)//真正的

前面我们说过新人(& # 39;北京# 39;)对象是没有原型的,样机只有函数才有;Father.prototype。构造函数将会沿着新人(& # 39;北京# 39;)的原型链向下查找构造函数,新人(& # 39;北京# 39;)没有构造函数就去它的__proto__找,因为(新人(& # 39;北京# 39;))。_ proto_ ===Person.prototype而Person.prototype。构造函数==,人()函数,所以Father.prototype。构造函数==Person.prototype。构造函数//人()函数当我们var>以上是“javascript构造函数有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

javascript构造函数有什么用