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
浙公网安备 33010602011771号