function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
} add.call(sub,3,1); // 结果是4==================================
function Class1()
{
this.name = "class1"; this.showNam = function()
{
alert(this.name);
}
} function Class2()
{
this.name = "class2";
} var c1 = new Class1();
var c2 = new Class2(); c1.showNam.call(c2); // 结果是class2
==========================================
两个之间是不是有点矛盾,总感觉第一个结果应该是2`````````````````
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
} add.call(sub,3,1); // 结果是4==================================
function Class1()
{
this.name = "class1"; this.showNam = function()
{
alert(this.name);
}
} function Class2()
{
this.name = "class2";
} var c1 = new Class1();
var c2 = new Class2(); c1.showNam.call(c2); // 结果是class2
==========================================
两个之间是不是有点矛盾,总感觉第一个结果应该是2`````````````````
函数.call(this, 参数1,参数2, ...)
add(函数).call(sub(this),3(参数1), 1(参数2))这里有一篇关于call和apply使用的详解,可以去看下,别人写的
http://longxzq-126-com.iteye.com/blog/1044319
call是用来执行函数
他第一个参是用来修改函数里面的this上下文,后面的参数是传进函数里面的实参,如
var obj = {};
function fn(name){
this.name = name
}
fn.call(obj, 123);
alert(obj.name);//123