js核心基础之构造函数constructor用法实例分析

js核心基础之构造函数constructor用法实例分析

摘要:本文主要介绍了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编程有所帮助。

js核心基础之构造函数constructor用法实例分析