首页 > 代码库 > call apply 使用

call apply 使用

1、call 跟 apply的主要区别:

 call传入参数是一个一个传入,而 apply 使用的是数组传入

 call(obj,arg1,arg2,arg3,arg4)

 apply(obj,[arg1,arg2,arg3,arg4]);

2、使用场景:

   2.1 方法调用:

          

  var say=  function (msg)        {            console.info("Say:" + msg);        }        var man = function (_name)        {            this.name=_name;        }               var m = new man("rhythmk");        say.call(m, m.name);        //Say:rhythmk 

 

   2.2 类继承:

        var poper = function (_name)        {            // 继承            /*               call(替换对象,参数1,参数2,参数3)               也可以通过call实现多继承            */            man.call(this, _name);        }        var p = new poper("pname");        console.log(p.name);        console.error("开始验证 call 跟 apply 区别:");        var animal = function (_name, _age, _type)        {            this.name = _name;            this.age = _age;            this.type = _type;            this.show = function () {                var msg = this.name + ",age:" + this.age + ",type:" + this.type;                console.log(msg);            };        }        var dog = function (_name, _age) {            animal.call(this, _name, _age,‘dog‘);        }        var pig = function (_name, _age) {            animal.apply(this, [_name, _age,‘pig‘])        }        var d1 = new dog("d1", 12);        d1.show();        var p1 = new pig("p1", 10);        p1.show()

 

call apply 使用