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()
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。