JS之继承
拷贝继承
function CreatePerson(name,sex){
this.name=name;
this.sex=sex;
}
CreatePerson.prototype.show=function(){
console.log('我是'+this.name)
}
var zhangsan=new CreatePerson('zhangsan','男')
function CreateSuper(name,sex){
CreatePerson.call(this,name,sex)
}
extend(CreateSuper.prototype,CreatePerson.prototype)
var huangxiaoming = new CreateSuper('黄晓明','男');
console.log(huangxiaoming.name)
huangxiaoming.show();
function CreateStudent(name,sex){
CreatePerson.call(this,name,sex)
}
extend(CreateStudent.prototype,CreatePerson.prototype)
var xiaohong = new CreateStudent('小红','女');
xiaohong.show()
function extend(obj1,obj2){
for(attr in obj2){
obj1[attr] = obj2[attr];
}
}
原型继承
<script>
function Super(){
this.name='小红'
}
Super.prototype.sayName=function(){
console.log('我叫:'+this.name)
}
function Sub(){
this.name='李四'
}
Sub.prototype=new Super();
var sub=new Sub();
console.log(sub);
sub.sayName();
</script>
事件监听
<script>
var btn = document.getElementById('btn');
var btn1 = document.getElementById('btn1');
btn1.addEventListener('click',function(){
alert('aaa')
})
btn1.addEventListener('click',function(){
alert('bbb')
})
btn1.addEventListener('click',function(){
alert('ccc')
}
removeEventListener()
btn.attachEvent('onClick',function(){alert('aaa')})
btn.attachEvent('onClick',function(){alert('bbb')})
function EventListener(element,eventName,fn){
if(element.addEventListener){
element.addEventListener(eventName,fn)
}else if(element.attachEvent){
element.attachEvent("on"+eventName,fn)
}else{
element['on'+eventName] = fn;
}
}
function fn(){
alert(8899)
}
EventListener(btn1,'click',fn)
</script>