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
要想搞明白构造函数,就要先弄懂什么是函数?以及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
相关文章推荐
- JSP动作指令详解
- JSP编译指令详解
- IntelliJ IDEA2016.1新建JSP工程
- JavaScript 原型模式的理解
- 30 段 JavaScript 代码
- javascript函数的几点总结
- js indexOf substring用法
- 【笔记】 《js权威指南》- 第6章 对象 - 6.8 对象的三个属性
- json使用方法
- Python和JavaScript中对超过数组长度的操作处理的不同
- JS实现全选、不选、反选
- JS正则表达式基本用法(经典全)
- JSON 之FastJson解析
- JavaScript面向对象及相关知识
- JavaScript继承
- js--面向对象--原型链
- javascript中的后退和刷新
- 【笔记】 《js权威指南》- 第6章 对象 - 6.7 属性的特性 (ECMAScript5)
- JS高级程序设置笔记(五)
- 观察者模式——JavaScript