前两天进修JS继续的时刻,搜到了阮大神写的一篇文章http://www.ruanyifeng.com/blo…
重要讲了5种组织函数继续体式格局.我写此篇文章重要是为了总结进修所得.
父组织器Animal,子组织器Cat,cat是子组织器new出来的对象,”只能继续父组织器中的属性” 代表继续属性和要领.
第一种叫组织函数绑定:
此种继续体式格局只能继续父组织器中的属性,不能继续父组织器原型上的属性.Animal.apply(this, arguments)也可用Animal.call(this)替代.cat对象有两个层级,第一级存放着自有属性以及父组织器中的属性,第二级存放着本身函数原型上的属性(Cat.prototype)
第二种叫prototype形式:
此种继续体式格局既能继续父组织器中的属性,也能继续父组织器原型上的属性.cat对象有三个层级,第一级存放着自有属性,第二级存放着父组织器的属性(加上constructor,指向建立该对象(cat)的组织器(Cat)),第三级存放着父组织器原型上的属性.
第三种叫直接继续prototype:
此种继续体式格局只能继续父组织器原型上的属性.cat对象有两个层级,第一级存放着自有属性,第二级存放着父组织器原型上的属性(加上constructor,指向建立该对象(cat)的组织器(Cat)).注重:Cat.prototype.constructor = Cat会将Animal.prototype.constructor也改成Cat,从而影响父组织器建立对象
第四种叫空对象作为中介:
此种继续体式格局只能继续父组织器原型上的属性.cat对象有三个层级,第一级存放着自有属性,第二级存放着暂时组织器F的属性(加上constructor,指向建立该对象(cat)的组织器(Cat)),第三级存放着父组织器原型上的属性.注重:暂时组织器只充任中介的作用,平常不会有本身的属性.
第五种叫浅拷贝继续(软大神称之为拷贝继续):
此种继续体式格局只能继续父组织器原型上的属性.cat对象有两个层级,第一级存放着自有属性,第二级存放着父组织器原型上的除了constructor和__proto__的属性(不会拷贝原型上的constructor和__proto__属性).合适父组织器原型上的自增属性为基础数据类型的状况.