原型

1、创建对象有几种方法
2、什么是原型,构造函数,实例,原型链
3、instanceof的原理
4、new运算符

 

1、创建对象有几种方法
<script type="text/javascript">
  // 第一种方式:字面量
  var o1 = {name:"o1"};
  var o2 = new Object({name:"o2"});

  // 第二种方式:构造函数
  var M = function(name) {this.name = name};
  var o3 = new M('o3');

  // 第三种方式:Object.create
  var p = {name:'o4'};
  var o4 = Object.create(p);
</script>

 

 

 

2、什么是原型、构造函数、实例、原型链
构造函数:任何函数,只要跟new一起使用,就是一个构造函数
实例:只要是个对象,就是一个实例
构造函数可以通过new运算符来生成一个实例

 
第一条线:通过下面的实例来理一理它们之间的关系,首先任何函数都可以当做构造函数,只要通过new去操作,构造函数可以通过new运算符来生成一个实例,也就是生成一个对象
第二条线:函数都有一个prototype属性。这个prototype属性就是一个原型对象
第三条线:constructor是原型对象的一个属性,也就是 prototype的一个属性。这个就是让原型对象知道是哪个构造函数所引用的,所以这个constructor === M
第四条线:所有的引用类型(数组、对象、函数),都有一个_proto_(隐式原型)属性_proto_属性值指向它的构造函数的"prototype"属性值。也就是__proto__ === prototype

 

// 第二种方式:构造函数
var M = function(name) {this.name = name};
var o3 = new M('o3');

 

 

3、instanceof原理

 

如图,左侧有个实例对象,对象有个__proto__,这个__proto__引用的是这个构造函数的原型对象prototype。__proto__ === prototyp。

 

posted @ 2018-12-23 17:04  wzndkj  阅读(222)  评论(0编辑  收藏  举报