apply和call方法

來源:互聯網
上載者:User

標籤:res   win   bsp   push   pre   轉換   apply   tor   selector   

 真偽數群組轉換

/*apply和call方法的作用:專門用於修改方法內部的this格式:call(對象, 參數1, 參數2, ...);apply(對象, [數組]);*/function test() {    console.log(this);}// window.test();var obj = {"name": "lnj2"};/*1.通過window.test找到test方法2.通過apply(obj)將找到的test方法內部的this修改為自訂的對象*/// window.test.apply(obj);// window.test.call(obj);function sum(a, b) {    console.log(this);    console.log(a + b);}// window.sum.call(obj, 1, 2);/*1.通過window.sum找到sum方法2.通過apply(obj)將找到的sum方法內部的this修改為自訂的對象3.將傳入數組中的元素依次取出, 傳遞給形參*/// window.sum.apply(obj, [3, 5]);// var arr = [];// arr.push(1);// console.log(arr);// 真數群組轉換偽數組的一個過程// var arr = [1, 3, 5, 7, 9];// var obj = {};/*1.通過[].push找到數組中的push方法2.通過apply(obj)將找到的push方法內部的this修改為自訂的對象3.將傳入數組中的元素依次取出, 傳遞給形參*/// [].push.apply(obj, arr);// console.log(obj);window.onload = function (ev) {    // 系統內建的偽數組,低級瀏覽器下沒問題    var res = document.querySelectorAll("div");    // 自訂的偽數組,低級瀏覽器下有問題    var obj = {0:"lnj", 1:"33", length: 2};    // var arr = []; // 真數組    // [].push.apply(arr, obj);    // console.log(arr);    // 如果想將偽數群組轉換為真數組那麼可以使用如下方法    var arr = [].slice.call(obj);    console.log(arr);    // var arr2 = [1, 3, 5, 7, 9];    // 如果slice方法什麼參數都沒有傳遞, 會將數組中的元素放到一個新的數組中原樣返回    // var res2 = arr2.slice();    // var res2 = arr2.slice(2);    // var res2 = arr2.slice(2, 4);    // console.log(res2);}

 

apply和call方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.