javascript的call方法总结
2017-03-07 10:11
120 查看
call方法说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
例一:
例二:
例三(继承):
例四(多重继承):
使用两个 call 就实现多重继承了。当然,js的继承还有其他方法,例如使用原型链。
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
例一:
function add(a,b) { alert(a+b); } function sub(a,b) { alert(a-b); } add.call(sub,3,1);这个例子中的意思就是用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4); // 注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。
例二:
function Animal(){ this.name = "Animal"; this.showName = function(){ alert(this.name); } } function Cat(){ this.name = "Cat"; } var animal = new Animal(); var cat = new Cat(); //通过call或apply方法,将原本属于Animal对象的showName()方法交给对象cat来使用了。 //输入结果为"Cat" animal.showName.call(cat,","); //animal.showName.apply(cat,[]);call 的意思是把 animal 的方法放到cat上执行,原来cat是没有showName() 方法,现在是把animal 的showName()方法放到 cat上来执行,所以this.name 应该是 Cat
例三(继承):
function Animal(name){ this.name = name; this.showName = function(){ alert(this.name); } } function Cat(name){ Animal.call(this, name); } var cat = new Cat("Black Cat"); cat.showName();Animal.call(this) 的意思就是使用 Animal对象代替this对象,那么 Cat中不就有Animal的所有属性和方法了吗,Cat对象就能够直接调用Animal的方法以及属性了.
例四(多重继承):
function Class10() { this.showSub = function(a,b) { alert(a-b); } } function Class11() { this.showAdd = function(a,b) { alert(a+b); } } function Class2() { Class10.call(this); Class11.call(this); }
使用两个 call 就实现多重继承了。当然,js的继承还有其他方法,例如使用原型链。
相关文章推荐
- javaScript中call,apply,bind方法的总结。
- Javascript中call,apply,bind方法的详解与总结
- JavaScript中call,apply,bind方法的总结
- JavaScript中call,apply,bind方法的总结。
- JavaScript中call,apply,bind方法的总结。
- JavaScript中call,apply,bind方法的总结(改变this指向)
- JavaScript中call,apply,bind方法的总结
- JavaScript中call,apply,bind方法的总结。
- Javascript中call,apply,bind方法的详解与总结
- JavaScript中call,apply,bind方法的总结
- javascript中的call()方法和apply()方法用法总结
- JavaScript中call,apply,bind方法的总结。
- Javascript中call,apply,bind方法的详解与总结
- Javascript中call,apply,bind方法的详解与总结
- JavaScript中函数对象的call()和apply()方法的总结
- JavaScript中call,apply,bind方法的总结。
- JavaScript中call,apply,bind方法的总结
- Javascript中call,apply,bind方法的详解与总结
- [置顶] JavaScript中call,apply,bind方法的总结
- JavaScript中call,apply,bind方法的总结。