js继承
来源:互联网 发布:php mvc理解 编辑:程序博客网 时间:2024/06/18 12:45
<script>
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.getName=function(){
alert(this.name);
};
Person.prototype.getAge=function(){
alert(this.age);
};
function Worker(name,age,job){
this.job=job;
//子类调用父级构造函数初始化属性,this代表一个new出来的Worker对象,
}
Worker.prototype[i]=Person.prototype[i]; //通过原型继承父级方法
}
}
Worker.prototype.getJob=function(){
alert(this.job);
};
var man=new Worker("hkj","12","程序猿");
man.getJob();
</script>
原型链不可用解释:
var a=new Array[1,2,3,4];
var b=a;
b.push(3);
结果:a==b==[1,2,3,4,3];
var b = a;属于引用传递,用形象的方法表示就是一个房间存了1,2,3,4四个数据a则是打开房间的钥匙,后来复制了一个钥匙给b,当b对房间进行操作时所有数据都会有影响。
Worker.prototype=Person.prototype; //表面上像是复制了原型参数,其实是复制了引用,子类会对父类产生影响,所以此方式不可用
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.getName=function(){
alert(this.name);
};
Person.prototype.getAge=function(){
alert(this.age);
};
function Worker(name,age,job){
this.job=job;
Person.call(this,name,age); //call和apply方法作用相同,只不过一个传入为数组,一个为参数列表
var args = [name,age];
Person.apply(this,args); //this可换成其他任何对象,表现当前对象指向了Person对象,俗称引用传递
//构造函数伪装//子类调用父级构造函数初始化属性,this代表一个new出来的Worker对象,
}
Worker.prototype=Person.prototype; // //原型链:通过原型继承父级方法
Worker.prototype=new Person(); //第二种原型链方式
for(var i in Person){Worker.prototype[i]=Person.prototype[i]; //通过原型继承父级方法
}
}
Worker.prototype.getJob=function(){
alert(this.job);
};
var man=new Worker("hkj","12","程序猿");
man.getJob();
</script>
原型链不可用解释:
var a=new Array[1,2,3,4];
var b=a;
b.push(3);
结果:a==b==[1,2,3,4,3];
var b = a;属于引用传递,用形象的方法表示就是一个房间存了1,2,3,4四个数据a则是打开房间的钥匙,后来复制了一个钥匙给b,当b对房间进行操作时所有数据都会有影响。
Worker.prototype=Person.prototype; //表面上像是复制了原型参数,其实是复制了引用,子类会对父类产生影响,所以此方式不可用
阅读全文
0 0
- JS继承--组合继承
- JS继承-类继承
- Js继承。
- js继承
- js继承
- js 继承
- js继承
- JS 继承
- JS 继承
- js继承
- js继承
- JS继承
- JS继承
- js继承
- JS继承
- JS继承
- js继承
- JS继承
- 20171107
- Chrome乱码问题以及插件开发
- Vue.js学习笔记(二)
- Storm集群部署与单词计数程序
- 《大话数据结构》程杰_原书冒泡排序p383错误
- js继承
- [一日一教学](14)文件替换:replace
- 炫酷神器,AE插件Bodymovin.zxp的安装与使用
- 初识Spring_04
- 时序约束方法及解决timing问题的方法(二)
- 批处理文件的@echo off
- List / Map / Collections
- 中文乱码问题
- 【Swift】上传图片限制大小