<button id="jhcbw"><acronym id="jhcbw"></acronym></button>
<em id="jhcbw"></em>
    1. <th id="jhcbw"><pre id="jhcbw"><rt id="jhcbw"></rt></pre></th>

        <ol id="jhcbw"><object id="jhcbw"></object></ol>
        首頁>技術分享>JavaScript中函數對象方法之call與apply

        JavaScript中函數對象方法之call與apply

        曾經在一次面試中被問到JavaScript中怎么改變this的指向?函數對象方法之call與apply有什么區別?

        今天我們就來對比一下call()和apply()有什么區別。

        首先我們定義一個對象:

            var my = {

                name: 'keshangwenhua'

            }


            function sayName(shengfen){

                alert("當前this是:" + this + ',公司名字:' + shengfen + this.name);

            }


            sayName.call(my,'河南');

            //sayName.apply(my,['河南']);

            

            把這些代碼復制到控制臺,我們發現

        WX20201120-211302.png


                由上面兩行代碼和彈出的信息我們可以知道call和apply的效果,用法是一模一樣的,唯一不同的是,call傳字符串,而apply傳遞參數用數組。

                個人感覺apply在項目中會更加好用,批量傳入數據!


                拓展一下知識:如何判斷this指向;

                1) 以函數形式調用時,this永遠指向window;   //如:sayName();

                2) 以方法被調用時,this指向的是調用方法的對象;//如: var aaa ={ ceshi:function(){...} }; aaa.ceshi();

                3) 以構造函數的形式調用時,this是新創建的那個對象; function Person(){....}   var aaa = new Person

                4) 使用call和apply時,this是指定(也就是括號里面的)那個對象;  //如xxxFn.call(obj,'你好');


                更多鄭州做網站技術,請大家繼續關注河南可尚文化的官網,我們會持續更新。

        免费大波美女做受视频
        <button id="jhcbw"><acronym id="jhcbw"></acronym></button>
        <em id="jhcbw"></em>
        1. <th id="jhcbw"><pre id="jhcbw"><rt id="jhcbw"></rt></pre></th>

            <ol id="jhcbw"><object id="jhcbw"></object></ol>