标签:
var a=[1,2,3]; var b=a; b=[1,2,3,4]; alert(a)
继承一:复制继承
children:子类
Parent:父类
attribute:Parent.call(this,name,sex)
//这个一般是指构造函数里的属性,这个值是每个对象都不一样的
method:children.prototype=Parent.prototype->对象的引用(地址是一个,修改会改变其它的值)
继承二:类式继承--new构造函数
把JS中的构造函数看做类
Bbb.prototype = new Aaa();//把构造函数也继承了 Aaa:constractor 问题:子类的构造函数也被覆盖成Aaa的; Bbb.prototype.constructor = Bbb; //修正指向问题 function Aaa(){ this.name = [1,2,4]; } Aaa.prototype.showName = function(){ alert(this.name); } function Bbb(){ Aaa.call(this); } /** 解决Aaa的构造函数共享问题 var F = function(){} F.prototype = Aaa.prototype; Bbb.prototype = new F(); Bbb.prototype.constructor = Bbb; **/ var b1 = new Bbb(); b1.name.push(4); var b2 = new Bbb(); console.log(b2.name)
继承一:原型继承--无new的对象
var a={ name:‘小明‘ } var b=cloneObj(a); b.name=‘lisa‘; b={ name:‘1111‘ } alert(b.name); //就近原则,找不到才到原型链里找 alert(a.name); function cloneObj(obj){ var F=function(){}; F.prototype = obj; return new F(); }
标签:
原文地址:http://www.cnblogs.com/lisa2544/p/5512610.html