举例什么时候会用到 call(), apply()

时间:2021-08-01 16:01:11
var obj = (function() {
    var privateFn = function() {
        alert(this.id);
    }
    return {
        id: 123,
        publicFn: function() {
            privateFn.call(this);
        }
    };
}());

obj.publicFn();

像上面,你可以访问到 ojb.publicFn(), 但私有的 privateFn() 就无法通过 obj.privateFn() 访问到了。

call 与 apply 不同点是接受参数方式不同:

apply(this,[param1,param2, ...]);
call(this,param1, param2, ...);