前端构造函数的生成步骤
构造函数
JavaScript 语言使用构造函数作为对象的模板。
所谓 ”构造函数”,就是一个普通的函数,只不过我们专门用它来生成对象(new 构造函数),这样使用的函数,就是构造函数;
它提供模板,描述对象的基本结构。
一个构造函数,可以生成多个对象,这些对象都有相同的结构。
function Person (name, age) {
this.name = name
this.age = age
this.sayName = function () {
console.log(this.name)
}
}
var p1 = new Person('Jack', 18)
p1.sayName() // => Jack
var p2 = new Person('Mike', 23)
p2.sayName() // => Mike
解析 构造函数代码 的执行
在上面的示例中,Person()
函数取代了 createPerson()
函数,但是实现效果是一样的。
这是为什么呢?
我们注意到,Person()
中的代码与 createPerson()
有以下几点不同之处:
没有显式的创建对象(没有使用字面量)
直接将属性和方法赋给了 this
没有 return
语句
函数名使用的是大写的 Person
而要创建 Person
实例,则必须使用 new
操作符。
new
关键字让构造函数具有了与普通函数不同的许多特点,而new
的过程中,执行了如下过程:
1.声明一个中间对象;
2.将该中间对象的原型指向构造函数的原型;
3.将构造函数的this
,指向该中间对象;
4.返回该中间对象,即返回实例对象。