网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 Function.prototype.apply()与Function.prototype.call()小结
范文
    JavaScript 中,某个函数的参数数量是不固定的,因此要说适用条件的话,当你的参数是明确知道数量时,用 call,而不确定的时候,用 apply,然后把参数 push 进数组传递进去。当参数数量不确定时,函数内部也可以通过 arguments 这个数组来便利所有的参数
    老是忘掉这两个东东的用下,写下来做个记录吧。
    他们作用是一模一样的,只是传入的参数不一样
    apply
    apply接受两个参数,第一个制定了函数体内this对象的指向,第二个参数为一个带下标的集合(可遍历对象),apply方法把这个集合中的元素作为参数传递给被调用的函数:
    var func = function(a, c, c){
      alert([a,b,c]); //[1,2,3]
    }
    func.apply(null, [1,2,3]);
    call
    call传入的参数不固定,和apply相同的是,第一个参数也是代表函数体内的this指向,第二个参数开始往后,每个参数被依次传入函数:
    var func = function(a, b, c){
      alert([a,b,c]); //[1,2,3]
    }
    func.call(null, 1,2,3);
    call是aplly的一颗语法糖。如果第一个参数为null,函数体内的this指向宿主对象,在浏览器中是window。
    call和apply的用途
    1.改变this指向
    上面的例子就是啦
    2.Function.prototype.bind
    模拟Function.prototype.bind
    Function.prototype.bind = function(context){
      var self = this;
      return function(){
        return self.apply(context, arguments);
      }
    };
    var obj = {
      name: 'cxs'
    };
    var func = function(){
      alert(this.name); //cxs
    }.bind(obj);
    fun();
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/16 22:41:50