javascript中call的使用方法是
func.call(obj, params);
调用func.call(obj, params);这个方法其实就等同于执行
function func(params)
{
var this = obj;
.....
}
当 obj参数为null的时候,obj默认就为当前的全局对象 。
以下一个测试的例子
<script> var obj1 = function() { this.x = 100; } var obj2 = function() { this.x = 200; } var x= "1"; function f(message) { alert(message); alert(this.x); } f.call(null, "global"); f.call(new obj1(), "invoking f obj1"); f.call(new obj2(), "invoking f obj2"); </script>
apply方法的功能等同于call,只不过apply的第二个参数必须是个数组。
func.apply(obj, ["test"]);