先看看关于call()的官方解释,“调用一个对象的一个方法,以另一个对象替换当前对象。”,看了这样的解释,或许让你更摸不着头脑了。看例子:
var x = "我是全局变量"; //定义全局变量x function a(){ //定义函数类结构a this.x = "我是在函数类结构a中声明的哦"; } //定义普通函数,弹出当前指针所包含的变量x的值 function f(){ alert (this.x); } //返回值为“我是在函数类结构a中声明的哦” f.call(new a());
function a(){ this.x = "我是在函数类结构a中声明的哦"; alert(this.x); } a();
function f(){ this.a ="a"; this.b = function(){ alert("b"); } } function e(){ f.call(this); } var c = new e(); alert(c.a); //弹出a c.b(); //弹出b