call作为function对象的一个方法,一直没有深究它与 直接调用function的区别
查看帮助文件,只是将方法function给另外一个对象来调用,还不是很理解,结合例子看一下
有一个方法
1 function f(strArguments) { 2 this.name = strArguments; 3 } 4 function A(value) { 5 //f("test"); 6 f.call(this, value); 7 } 8 var a = new A("test"); 9 alert(a.name);
分析,本身类A没有name属性
但是在执行完代码之后发现 使用f.call调用的时候,a.name 为test
结合面向对象的思想,实际上就是为类A继承了f类的name属性 及为name赋值了
extjs实现javascript的类的继承多基于该原理实现