JavaScript 原型和引用趣点
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <script type="text/javascript"> var arr1=[1,2,3]; //第一种情况 //var arr2=arr1; //arr2.push(4);//[arr1的值是:1,2,3,4] arr2是执向arr1的引用,js一切皆引用 //var arr2=arr1.slice();//深、浅拷贝 [arr1的值是:1,2,3] 拷贝一个副本 var arr2=[]; for(var i in arr1) { arr2[i]=arr1[i]; } arr2.push(4); //alert(arr1);1,2,3 //alert(arr2);1,2,3,4 function Animal(name,age) { this.name=name; this.age=age; } Animal.prototype.ShowName=function(){ alert(this.name); } Animal.prototype.ShowAge=function(){ alert(this.age); } function Tuzi(name,age,run) { //this->new出来的Animal对象,调用父类的构造函数,继承父级的属性 Animal.call(this,name,age); this.run=run; } //通过原型链来继承父级的方法-- /* 第一种实现 Tuzi.prototype=Animal.prototype; Tuzi.prototype.ShowRun=function(){ alert(this.run); } alert(Animal.prototype.ShowRun); 父类居然弹出子类的ShowRun,很不靠谱 */ for(var i in Animal.prototype) { Tuzi.prototype[i]=Animal.prototype[i]; }
Tuzi.prototype.ShowRun=function(){
alert(this.run);
}
alert(Animal.prototype.ShowRun); //弹出undefied,子类没有影响到父类 </script> </head> <body> </body> </html>
生活没有输赢,不要在乎别人如何评价你,开心就好。
QQ群:158138959