new 运算符与构造函数
当被 new
运算符的时候,这个就会被称为构造。
任何都能被 new
运算符,但是一般会从设计上将考虑为构造,提供给 new
运算符。
function Human(name, gender) {
this.name = name;
this.gender = gender;
}
var human = new Human();
构造的主要作用是用于对象。
有其他面向对象语言开发经验的同学可能会觉得使用 new
运算符的语法和创建类的示例很像,其实本质是不一样的。
结合原型的特性,在 JavaScript
中也能实现类似于类的一套机制。
关于构造和原型的处理关系,原型章节已经有详细介绍,具体可以参考原型章节。
使用 new 运算符的时,背后有一套运行机制,这套机制说明了构造是怎么产生对象的。
当 new 运算符时,大致会进行以下几个操作:
function Person(name, gender, age) {
this.name = name;
this.gender = gender;
this.age = age;
}
var person = new Person('小明', '男', );
console.log(person.name);
这样就能理解为什么使用 new
操作符可以对象了。
这个机制也是面试的高频题。
构造用于对象,理解构造和原型机制非常重要,不但是面试中的高频题,也可以提升编写高质量、可复用的的能力。