js中call用法
一、使用call继承对象方法
function a(){ this.m1=function(){ console.log("a-m1-n"); } } a.prototype.m2=function(){ console.log("a-m1-p"); } a.m3=function(){ console.log("a-m3-l"); }function b(){
a.call(this);
}
var nb = new b();nb.m1();//a-m1-n
nb.m2();//error
nb.m3();//error
二、使用call、apply调用其他对象的方法
eg1:判断对象类型
var o = [] Object.prototype.toString.call(o) == "[object Array]"//true
eg2:让对象具备Array的能力
var dnode = document.getElementsByTagName("input")dnode = Array.prototype.slice.call(dnode)
dnode.length//3
dnode.join("===")//"[object HTMLInputElement]===[object HTMLInputElement]===[object HTMLInputElement]"
eg3:
function Animal(){ } Animal.prototype={ food:"", say: function(){ alert("I love "+this.food); } }function dog(){
}
dog.prototype={
food:"meat"
}
function cat(){
}
cat.prototype={
food:"fish"
}var animal = new Animal();
animal.say.call(new cat());//i love fish
animal.say.call(new dog());//i love meat
标题:js中call用法
作者:hugh0524
地址:https://blog.uproject.cn/articles/2016/05/04/1462334242036.html
0 0