加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

call、apply、bind 区别

发布时间:2020-12-14 05:16:15 所属栏目:大数据 来源:网络整理
导读:1.为什么要用 call 、apply? 为了 改变方法里面的属性而不去改变原来的方法 function fruits() {} fruits.prototype = { color: "red",say: function() { console.log("My color is " + this.color); }} var apple = new fruits;apple.say(); //My color is

1.为什么要用 call 、apply?
为了 改变方法里面的属性而不去改变原来的方法

function fruits() {}
 
fruits.prototype = {
    color: "red",say: function() {
        console.log("My color is " + this.color);
    }
}
 
var apple = new fruits;
apple.say();    //My color is red

     banana = {
 
    color: "yellow"
}
   }

apple.say.call(banana);         //My color is yellow
a
apple.say.apply(banana);    //My color is yellow

2.call 与apply 区别
1)call 参数固定 apply 参数不固定 apply 参数是放在数组里面的
2)call 可以将伪数组转换为真正的数组
例如一个例子:

    function log(){
         var args = Array.prototype.slice.call(arguments);
         args.unshift(‘(app)‘);
         console.log.apply(console,args);
   };
log("hello world");    //(app)hello world

? 3)? bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用 。

   function show(sex){
    console.log("普通函数"+sex);
  }
  var person={
    name:"aa",age:14
  };
show.call(person,"男");
show.apply(person,["女"]);
//对于bind来说,用法更加的灵活
 show.bind(person,"不明")(
     );
// var ss=show.bind(person,"不明");
// ss();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读