JavaScript call方法

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的类的继承多基于该原理实现

原文地址:https://www.cnblogs.com/softxu/p/2445657.html