在JavaScript中,构造函数的特点就是函数的首字母大写,其实也就是为了和JavaScript内置的构造函数的表现一致。
构造函数的调用一般都是配合new关键字来调用的。
1、JavaScript中的内置构造函数(9种)
Number()、String()、Boolean()、Object()、Array()、Function()、Date()、RegExp()、Error()
是不是觉得很熟悉呢,原来我们之前创建的Date对象、Array对象等,都是使用构造函数来创建的。即 var arr = new Array();
2、自定义的构造函数
记得函数首字母大写。
function Foo(){
this.name = "winne";
this.age = 22;
this.className = "class1";
this.fun = function(){
console.log(666);
}
// return this; //构造函数在最后都会隐式地执行return this
}
//使用new关键字来构造函数的实例化对象
var f1 = new Foo();
var f2 = new Foo(); // 可以创建多个实例化对象
//访问实例对象的属性和方法
console.log(f1.name); // winne
f1.fun(); // 666
new就是实例化一个对象,刚开始new构造函数时,里面的this是一个空对象。后面根据代码的执行才开始赋值。
f1、f2是实例对象,我们可以调用这个对象的属性和方法。其中,对象的属性和方法我们已经在构造函数中定义了。
3、构造函数——扩展
- var a = {} 其实是var a = new Object()的语法糖;这里的实例对象a的构造函数就是Object。
- var b = [ ] 其实是var b = new Array() 的语法糖;
- function Foo(){…} 其实是 var Foo = new Function (…) 的语法糖;
- 使用instanceof来判断一个变量的构造函数是否是指定的那个构造函数:
假如判断一个变量是否是数组:变量名 instanceof Array