Javascript中的魔术调用()方法

看看官方解释的调用(),调用一个对象的方法,用另一个对象替换当前对象:

复制代码代码如下所示:

我是一个全局变量;

函数(a)定义函数类结构a

这个x我在函数类结构中声明一个;

}

定义普通函数,弹出的当前指针包含变量x的值。

函数f(){

警报(此x);

}

返回值是在i语句函数类结构中。

f.call(新一());



我的理解是,f.call(新一())是复制功能(实际对象)F的对象称为新()来解析它,事实上,为下面的分析代码的结果是:

复制代码代码如下所示:

函数A(){

这个x我在函数类结构中声明一个;

警报(此x);

}

(a);



但是变量x在这个时候的范围是不同的。……看起来像是一点遗产,不是吗在这种情况下,F是完全继承了一个对象的构造函数的实力,如果这还不足以表明a.call(B)是一种遗传模式,再看看一个更有品味的传承方式。

复制代码代码如下所示:

函数f(){

这个;

此函数=(){

警报();

}

}

函数E(){

f.call(本);

}

新的E();

警报(一); / /流行

C. B(b);



在这种情况下,只要使用浏览器的朋友,可以看到E继承了f的属性和方法,否则就无法解释,因为E不定义a和b的属性,然后根据C中E对象实例中的常识,并且不会出现这两个属性。