构造函数:
构造函数是函数的一种形式,它是一个抽象的概念,它的作用就是定义一些公共的特性。
简单点说,构造函数就是一个模版,由这个模版制造的实体,会具有模版规定好的特性。
// 我们习惯将构造函数的函数名以驼峰法命名
function Person(name) {
// this指当前模版,this.xxx指当前模版的特性
this.name = name;
this.work = function () {
console.log("删库跑路...");
};
}
上面定义了一个构造函数,它是定义了Person的模版,每个人都有姓名,都要工作,根据这个模版会创建出无数个Person的实体。
JavaScript中,通过new关键字来创建实体。
var person = new Person("tom");
我们通过new关键字,创建了一个Person模版下的实体person,并给他起名为tom,于是这个实体就有了该模版的特性。
person.work(); // 删库跑路...
实体的概念并不抽象,他是实实在在存在的,例如,王二丫,李狗蛋。
这就是面向对象的思维,将一类实体具有的特性,封装成一个模版。
这个模版称之为类。
实例、对象:
在JavaScript中,由构造函数创建的实体,我们称之为实例。
实例,我们又称之为对象,实例中的变量,我们称之为属性,实例中的函数,我们称之为方法。
实例和对象其实是等价的,只是叫法不同。
可以这么理解,程序中的实例,应用到生活中,就叫做对象。
同理,程序中的变量,应用到生活中,就叫做属性,程序中的函数,应用到生活中,就叫做方法。
在创建person实例的时候,经历了几个步骤。
- 创建一个新对象。
- 将构造函数的作用域赋给新对象(this指向person),新对象就拥有了模版的特性。
- 为这个新对象添加属性。
- 返回新对象,用person变量接收。
个人学习总结,欢迎批评指正