js构造函数

在js中构造函数的函数名一般首字母要大写。

1 function Fn(name,age){
2     this.name=name;
3     this.age=age;
4     this.str='hello';
5     //return this;  这一句可省略,因为构造函数默认有这一句
6 }
7 
8 var f=new Fn('zhangsan',10);
9 console.log(f.age);//10

通过new一个构造函数可以创建一个对象,那么new一个构造函数的过程中,具体做了什么呢?

1.创建了一个空对象,并将this指向这个空对象。

2.执行函数,即为this添加属性和属性值。

3.返回这个对象。

其次,在js中array,object,function都可以通过new对应的函数来创建:

var a=[1,2,3] 实际上是 var a=new Array()的语法糖

var a={}实际上是var a=new Object()的语法糖

var a=function(){}实际上是var a=Funciton()的语法糖

虽然后者写法上没错,但实际写的过程还是会推荐前一种写法,简洁,易于理解。

最后,使用instanceof 可以判断一个函数是否是某个变量的构造函数。如:

1 f instanceof Fn;//true
原文地址:https://www.cnblogs.com/cherryshuang/p/8505219.html