BlueDestiny, never-online From: http://www.never-online.net, Blog.youkuaiyun.com/BlueDestiny
看过BlueDestiny在博客中写的call,apply用法,写得很清楚。但觉得demo不够明显,略加修改。- /*
- call方法JScript参考中的说明:调用一个对象的一个方法,以另一个对象替换当前对象。
- call([thisObj[,arg1[, arg2[, [,.argN]]]]]),但是没有示例
- */
- // simple call demo
- function simpleCallDemo(arg) {
- window.alert(arg);
- this.a="4";
- }
- function handleSPC(arg) {
- this.a=5;
- simpleCallDemo.call(this, arg);
- alert(this.a);
- }
运行效果:alert helloworldcall , alert 4 ,当在simpleCallDemo.call(this,arg)时,这里的this就被simpleCallDemo取代了.
- //call和apply还有一个技巧在里面,就是用call和apply应用另一个函数(类)以后,
- //当前的函数(类)就具备了另一个函数(类)的方法或者是属性,这也可以称之为“继承”。看下面示例。
- // inherit
- function base() {
- this.member = "never-online";
- this.method = function() {
- window.alert(this.member);
- }
- }
- function extend() {
- this.member="123";
- this.method=function(){
- alert(this.member+"in extend");
- }
- base.call(this);
- window.alert(member);
- window.alert(this.method);
- }
833

被折叠的 条评论
为什么被折叠?



