在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
js构造函数
原文地址:https://www.cnblogs.com/cherryshuang/p/8505219.html