简单的例子一个:
function Class1()
{
this.name = “class1″;
//js闭包
this.showName = function()
{
alert(this.name);
}
}
function Class2()
{
this.name = “class2″;
}
var c1 = new Class1();
var c2 = new Class2();
c1.showName.call(c2);
c1.showName.call(c2)中call方法把c1的方法放到了c2上执行,因为call方法替换的是函数内部this.name = “class2″后执行的方法,也就是说
执行c1.showName.call(c2)等同于执行
function Class2()
{
this.name = “class2″;
this.showName = function()
{
alert(this.name);
}
}
function Class1()
{
this.name = “class1″;
//js闭包
this.showName = function()
{
alert(this.name);
}
}
function Class2()
{
this.name = “class2″;
}
var c1 = new Class1();
var c2 = new Class2();
c1.showName.call(c2);
c1.showName.call(c2)中call方法把c1的方法放到了c2上执行,因为call方法替换的是函数内部this.name = “class2″后执行的方法,也就是说
执行c1.showName.call(c2)等同于执行
function Class2()
{
this.name = “class2″;
this.showName = function()
{
alert(this.name);
}
}