• <var id="zvtmq"></var>
      <tt id="zvtmq"><pre id="zvtmq"></pre></tt>

      <font id="zvtmq"></font>

      <tt id="zvtmq"></tt>

        <var id="zvtmq"></var>
        <mark id="zvtmq"><pre id="zvtmq"><td id="zvtmq"></td></pre></mark>

        1. 
          

          <var id="zvtmq"><object id="zvtmq"><noscript id="zvtmq"></noscript></object></var><label id="zvtmq"><button id="zvtmq"><address id="zvtmq"></address></button></label>

            <tt id="zvtmq"><wbr id="zvtmq"></wbr></tt>
            <strike id="zvtmq"><output id="zvtmq"></output></strike>

          1. <del id="zvtmq"><wbr id="zvtmq"><meter id="zvtmq"></meter></wbr></del>

          2. <small id="zvtmq"></small>

            <code id="zvtmq"><rt id="zvtmq"></rt></code>
          3. <listing id="zvtmq"><object id="zvtmq"></object></listing>

                  广告
                  文章导航

                  JavaScript apply()

                  2018-10-15 23:13| 作者: admin| 查看: 1318| 评论: 0|来自: 蚂蚁部落

                  apply可以修改指定函数的调用对象,函数中的this也会指向新的调用对象。

                  恰当的使用apply可以让繁琐的操作变得更为简单。

                  特别?#24471;?/span>:apply对箭头函数无效。

                  语法结构:

                  [JavaScript] 纯文本查看 复制代码
                  function.apply(newObj[, argsArray])

                  参数解析:

                  (1).function:此函数的调用对象将被修改。

                  (2).newObj:必需,函数的新调用对象。

                  (3).argsArray:必需,传递给function函数的参数,数组或者arguments对象。

                  一.代码实例:

                  [JavaScript] 纯文本查看 复制代码运行代码
                  let antzone={
                      webName:"蚂蚁部落",
                      show:function(){
                          console.log(this.webName);
                      }
                  }
                  let baidu={
                      webName:"百度",
                      show:function(){
                          console.log(this.webName);
                      }
                  }
                  antzone.show();
                  antzone.show.apply(baidu);

                  代码运行效果截图如下:

                  a:3:{s:3:\"pic\";s:43:\"portal/201810/15/231410rr2t2jodgojvqpon.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

                  代码分析如下:

                  (1).antzone调用show方法,无疑this是指向antzone,打印结果自然是"蚂蚁部落"。

                  (2).antzone.show.apply,apply可以将show调用对象由antzone修改为baidu。

                  (3).被修改之后,show中的this指向新对象baidu,那?#21019;?#21360;结果也就变成"百度"。

                  再来看一段代码实例:

                  [JavaScript] 纯文本查看 复制代码运行代码
                  function A(){
                    this.url="http://www.pecf.tw";
                  }
                  function B(age,address){
                    this.age=age;
                    this.address=address;
                    console.log(this.age);
                    console.log(this.address);
                    console.log(this.url);
                  }
                  let oa=new A();
                  B.apply(oa,["age","青岛市南区"]);

                  代码运行效果截图如下:

                  a:3:{s:3:\"pic\";s:43:\"portal/201810/15/231440u5rgi9gdl852ulcx.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

                  代码分析如下:

                  (1).创建构造函数A的一个对象实例oa。

                  (2).通过apply方法将B函数的调用对象修改为oa。

                  (3).修改之后,B函数中的this指向对象oa。

                  (4).最后给apply传递第二个参数,具有两个元素的数组,那么B接收数组中的两个元素作为参数。

                  二.实际应用:

                  获取数字数组中的最大值和最小值的方式有很多,比如自己写代码挨个遍历比较。

                  比较方便的方式是利用Math.max和Math.min方法实现。

                  代码实例如下:

                  [JavaScript] 纯文本查看 复制代码运行代码
                  let arr = [7,3,4,6,10];
                  console.log(Math.max.apply(Math,arr));
                  console.log(Math.min.apply(Math,arr));

                  代码运行效果截图如下:

                  a:3:{s:3:\"pic\";s:43:\"portal/201810/15/231540llor7skl66kz4ysl.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

                  Math.max和Math.min方法可以接收多个数字以比较它们之间的大小。

                  可以通过apply方法以数组形式传递参数,非常简洁的实现了预期效果。

                  [JavaScript] 纯文本查看 复制代码运行代码
                  let a = [1,2,3];
                  let b = [3,4];
                  Array.prototype.push.apply(a, b);
                  console.log(a);

                  代码运行效果截图如下:

                  a:3:{s:3:\"pic\";s:43:\"portal/201810/15/231615y9yddde0tqtvd9ys.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

                  利用apply可以很方便的实现了数组的合并效果。

                  由于ES2015的出现,还有比上面更加方便的合并数组的方式。

                  代码实例如下:

                  [JavaScript] 纯文本查看 复制代码运行代码
                  let arr=[4,5];
                  console.log([1,2,3,...arr]);

                  代码运行效果截图如下:

                  a:3:{s:3:\"pic\";s:43:\"portal/201810/15/231644r1vupp1lfpzn9trm.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

                  使用展开运算符使数组合并数组更加方便。

                  关于展开运算符更多知识可以参阅JavaScript 展开运算符一章节


                  鲜花

                  握手

                  雷人

                  路过

                  鸡蛋

                  最新评论

                  返回顶部
                1. <var id="zvtmq"></var>
                    <tt id="zvtmq"><pre id="zvtmq"></pre></tt>

                    <font id="zvtmq"></font>

                    <tt id="zvtmq"></tt>

                      <var id="zvtmq"></var>
                      <mark id="zvtmq"><pre id="zvtmq"><td id="zvtmq"></td></pre></mark>

                      1. 
                        

                        <var id="zvtmq"><object id="zvtmq"><noscript id="zvtmq"></noscript></object></var><label id="zvtmq"><button id="zvtmq"><address id="zvtmq"></address></button></label>

                          <tt id="zvtmq"><wbr id="zvtmq"></wbr></tt>
                          <strike id="zvtmq"><output id="zvtmq"></output></strike>

                        1. <del id="zvtmq"><wbr id="zvtmq"><meter id="zvtmq"></meter></wbr></del>

                        2. <small id="zvtmq"></small>

                          <code id="zvtmq"><rt id="zvtmq"></rt></code>
                        3. <listing id="zvtmq"><object id="zvtmq"></object></listing>

                                快乐10分破解如何计算
                              1. <var id="zvtmq"></var>
                                  <tt id="zvtmq"><pre id="zvtmq"></pre></tt>

                                  <font id="zvtmq"></font>

                                  <tt id="zvtmq"></tt>

                                    <var id="zvtmq"></var>
                                    <mark id="zvtmq"><pre id="zvtmq"><td id="zvtmq"></td></pre></mark>

                                    1. 
                                      

                                      <var id="zvtmq"><object id="zvtmq"><noscript id="zvtmq"></noscript></object></var><label id="zvtmq"><button id="zvtmq"><address id="zvtmq"></address></button></label>

                                        <tt id="zvtmq"><wbr id="zvtmq"></wbr></tt>
                                        <strike id="zvtmq"><output id="zvtmq"></output></strike>

                                      1. <del id="zvtmq"><wbr id="zvtmq"><meter id="zvtmq"></meter></wbr></del>

                                      2. <small id="zvtmq"></small>

                                        <code id="zvtmq"><rt id="zvtmq"></rt></code>
                                      3. <listing id="zvtmq"><object id="zvtmq"></object></listing>

                                            1. <var id="zvtmq"></var>
                                                <tt id="zvtmq"><pre id="zvtmq"></pre></tt>

                                                <font id="zvtmq"></font>

                                                <tt id="zvtmq"></tt>

                                                  <var id="zvtmq"></var>
                                                  <mark id="zvtmq"><pre id="zvtmq"><td id="zvtmq"></td></pre></mark>

                                                  1. 
                                                    

                                                    <var id="zvtmq"><object id="zvtmq"><noscript id="zvtmq"></noscript></object></var><label id="zvtmq"><button id="zvtmq"><address id="zvtmq"></address></button></label>

                                                      <tt id="zvtmq"><wbr id="zvtmq"></wbr></tt>
                                                      <strike id="zvtmq"><output id="zvtmq"></output></strike>

                                                    1. <del id="zvtmq"><wbr id="zvtmq"><meter id="zvtmq"></meter></wbr></del>

                                                    2. <small id="zvtmq"></small>

                                                      <code id="zvtmq"><rt id="zvtmq"></rt></code>
                                                    3. <listing id="zvtmq"><object id="zvtmq"></object></listing>

                                                            欢乐升级刷分 腾讯十三水 双色球智能选号器 彩吧p3开机号 破解11选5出号规律视频 浙江11选5专家推荐 极速飞艇选号技巧 乐彩广东快乐十分钟 临平特色餐馆 江西时时彩分析软件 下载甘肃快三软件 广东时时彩11玩法介绍 甘肃十一选五前三走势图带连线 广东时时彩模拟投注平台 内蒙古快3一定牛和值