您的位置:首页 > Web前端 > JavaScript

JavaScript中什么是构造函数?

2016-04-02 23:18 204 查看
今天被刚来的实习生问及一个普遍说不清道不明的问题,什么是构造函数?经过一番思索,决定从JavaScript 的函数本质开始说起。(以下简称js)

要想搞明白构造函数,就要先弄懂什么是函数?以及js中有哪几种函数的创建形式。

什么是函数?

函数简单的说就是重复执行的代码块;按照JavaScript权威指南(第六版)(作者是David Flanagan)

(注:这本书还是很适合初学者看的,提供一个下载链接: )

书中的说法:函数是这样的一段JavaScript 代码,它只定义一次,但可能被执行或调用任意次。

Js中有哪几种创建形式呢?

函数使用function 关键字来定义,其后跟随,函数名称标识符、 一对圆括号、一对花括号。 JavaScript中有三种创建形式,分别是:

① 声明式

function fn( ){ }; 这种定义的方式,无论在哪儿定义,别处都可以调用 ;

② 函数的字面量或叫直接量或称表达式

var fn=function () { }; 此时函数作为表达式存在,调用只能在定义的后面;

解释一下表达式:凡是将数据和运算符等联系起来有值得式子就是表达式。

采用new Function 方法;

③ 以new Function 的形式

varfn = new Function (arg1 , arg2 ,arg3 ,…, argN , body )

解释:

Function构造函数所有的参数都是字符串类型。除了最后一个参数, 其余的参数都作为生成函数的参数即形参。这里可以没有参数。最后一个参数, 表示的是要创建函数的函数体。

另外,js 中任意函数都是Function 的实例。

有了以上的铺垫就可以来说明什么是构造函数了:

构造:它是设计,组合。将没有的东西先概念实现,比如建筑图纸

构造函数:首先,它是函数,并且任何的函数都可以作为构造函数存在,它的本质是初始化对象。构造函数都是和new 关键词一起使用的。 new就是在创建对象,从无到有,构造函数就是在为初始化的对象添加属性和方法( 成员 ) 好比:

this.name = xiaoming;

this.age= 10;

this.gender= '男';

其实刚才的创建函数的第三种方法就是利用构造函数的方式实现的

如: var obj = new Person( “xiaoming ”, 10 ,”男” ) ;

有了构造函数,那构造对象就成以下四步了:

1, new 申请内存, 创建对象

2, 调用构造函数, 构造函数有一个隐式参数, 即 this

3, 刚创建出来的对象的引用 赋值给 this, 由函数处理.

4, 在构造函数中利用 this.成员 = 值 来给对象添加成员 .

以一个典型的案例结尾 :

Function Person( name,age,gender ) {

this.name = name;

this.age=age;

this.gender = gender;

this.sayHello = function () {

console.log('Hello '+ name );

};

}

var P1= new Person('jim',10,‘男’);

var P2= new Person(tom,20,‘女);

by Turbo beijing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: