面试准备 原型链

创建对象有几种方法

1.字面量对象  var o1 = {}

var o1 = {name:"hill"}
o1.prototype
//undefined  只有创建一个新函数 才会为这个新函数创建一个prototype属性,并且指向原型
o1.__proto__.constructor === Object
//true

 

2.显示构造函数创建对象  var o2 = new O()

var O = function(name) {this.name = name}

var o2 = new O()

O.prototype 
//{constructor: ƒ}constructor: ƒ (name)__proto__: Object
o2
//O {name: undefined}name: undefined__proto__: Object
o2.prototype
//undefined  o2作为类的实例 不是一个标准函数 而是一个类的实例
所有没有新函数的 prototype属性  只有实例的属性  __proto__属性

var OO = function(){}
OO.prototype
//{constructor: ƒ}  随意创建一个函数都有 prototype属性

 

3.var o3 = Obect.creat(proto)

返回一个新对象,带着指定的原型对象和属性

新创建对象的原型对象

实现类式继承

原型,构造函数,实例 原型链

instanceof原理

new运算符号 背后工作原理

posted @ 2019-11-30 23:43  容忍君  阅读(198)  评论(0)    收藏  举报