前言
面向对象的三大特性
封装
继承
多态
原型链的知识
原型链是面向对象的基础,是非常重要的部分。有以下几种知识:
创建对象有几种方法
原型、构造函数、实例、原型链
instanceof的原理new 运算符
创建对象有几种方法
方式一:字面量
1 | var obj11 = {name: 'qianguyihao'}; |
上面的两种写法,效果是一样的。因为,第一种写法,obj11会指向Object。
第一种写法是:字面量的方式。
第二种写法是:内置的构造函数
方式二:通过构造函数
1 | var M = function (name) { |
方法三:Object.create
1 | var p = {name:'smyhvae'}; |
第三种方法,很少有人能说出来。这种方式里,obj3是实例,p是obj3的原型(name是p原型里的属性),构造函数是Objecet 。

原型、构造函数、实例,以及原型链

PS:任何一个函数,如果在前面加了new,那就是构造函数。
原型、构造函数、实例三者之间的关系

1、构造函数通过 new 生成实例
2、构造函数也是函数,构造函数的
prototype指向原型。(所有的函数有prototype属性,但实例没有prototype属性)3、原型对象中有 constructor,指向该原型的构造函数。
上面的三行,代码演示:
1 | var Foo = function (name) { |