javascript 動態添加參數後再執行的方法

來源:互聯網
上載者:User

function myFunction(test1, test2) {
    //用apply傳入的參數必須顯式聲明,按放入順序取   
    //alert(extendStr);   
    alert(test1);
    alert(test2);
    //綁定property後不用傳入也可以通過函數本身調用,但不能用this   
    alert("myFunction.extendStr = " + myFunction.extendStr);
}

function extendFunction(callbackFunction, extend) {
    var extendStr = "this is extend string!";
    var args = [];
    if (typeof (extend) == "object") {
        for (var property in extend) {
            //綁定property,可以通過函數本身調用   
            callbackFunction[property] = extend[property];
            //把參數值按照順序放入到數組中,通過apply傳入   
            args.push(extend[property]);
        }
    }
    //綁定property,可以通過函數本身調用   
    callbackFunction["extendStr"] = extendStr;
    //把參數值按照順序放入到數組中,通過apply傳入   
    args.push(extendStr);
    //動態調用函數,把參數值數組傳入   
    alert('c');
    callbackFunction.apply(this, args);
}
//動態擴充函數並執行,一般用在ajax回呼函數的處理中
extendFunction(myFunction, { test1: 'aaa', test2: 'bbb' });

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.