面向对象与基于对象
几乎每一个开发人员都有面向对象语言(好比C++、C#、Java)的开发经验。 在传统面向对象的语言中,有两个很是重要的概念 - 类和实例。 类定义了一类事物公共的行为和方法;而实例则是类的一个具体实现。 咱们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。编程
可是在JavaScript的世界中,全部的这一切特性彷佛都不存在。 由于JavaScript自己不是面向对象的语言,而是基于对象的语言。 这里面就有一些有趣的特性,好比JavaScript中全部事物都是对象, 包括字符串、数组、日期、数字,甚至是函数,好比下面这个例子:数组
10 |
console.log(add.invokeTimes); |
模拟JavaScript中类和继承
在面向对象的语言中,咱们使用类来建立一个自定义对象。然而JavaScript中全部事物都是对象,那么用什么办法来建立自定义对象呢?函数
这就须要引入另一个概念 - 原型(prototype),咱们能够简单的把prototype看作是一个模版,新建立的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是连接,只不过这种连接是不可见,给人们的感受好像是拷贝)。spa
让咱们看一下经过prototype建立自定义对象的一个例子:prototype
02 |
function Person(name, sex) { |