摘要:本文主要介绍了js的核心基础——构造函数的用法,并结合具体实例分析了javascript的构造函数的概念、原理、用法及相关操作注意事项。有需要的可以参考一下。
本文举例说明了js core foundation的构造函数constructor的用法。分享给你,供你参考,如下:
在js中,构造函数可以用来创建特定类型的对象。其中有一些原生构造函数,比如object,Array等等。因此,当使用对象类型时,返回函数。此外,我们还可以创建自定义构造函数来自定义对象的属性和方法。
例如:
职能人员(姓名、年龄、工作){
this.name=name
this.age=年龄;
this.job=job
this.sayName=function () {
alert(this . name);
}
}
var person1=新人( zhy ,18,软件工程师);
var person2=新人( zhy2 ,19,医生);
注意:要创建Person的新实例,必须使用new运算符。如果不使用new,属性和方法将被添加到window对象中。
以这种方式调用构造函数实际上要经历四个步骤:
创建一个新对象;
把构造函数的作用域赋给新对象,所以这个指向这个新对象;
执行构造函数中的代码,也就是给这个新对象添加属性和方法;
返回新对象。
缺点:
在上面的例子中,我们可以知道每个实例都有一个方法来sayName,但是
console . log(person 1 . say name==person 2 . say name);//假
因为,每次创建实例时,您实际做的事情如下:
职能人员(姓名、年龄、工作){
this.name=name
this.age=年龄;
this.job=job
this.sayName=new Function () {
alert(this . name);
}
}
因此,人员1的sayName与人员2的sayName不是同一个实例。但是我们可以这样做:
职能人员(姓名、年龄、工作){
this.name=name
this.age=年龄;
this.job=job
this . say name=say name;
}
函数sayName(){
alert(this . say name);
}
这样,每个实例对象中的sayName函数都指向同一个函数。
然而,问题又来了。如果一个对象有很多函数要定义,就要定义很多全局函数,没有封装。幸运的是,这些问题可以通过使用原型模式来解决。
本文参考《JavaScript高级程序编程》。
对更多JavaScript相关内容感兴趣的读者可以查看我们的专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》和《JavaScript数学运算用法总结》。
希望这篇文章对大家的JavaScript编程有所帮助。