JS參數使用帶參數的方法


        大家都知道,在JS之中,一個變量的生命周期不是以大括號為界限的,所以即使是使用在循環或判斷中的變量,外部也可以使用。可如果我們在循環或變量中使用了方法,而且這個方法使用了循環中的變量,那么后面的代碼是可以修改這個變量的值的,而不是,將值的內容完全寫死在了循環里面的方法中。那么解決這個問題的一種方法就是,將方法寫出來,接收一個參數就可以了。

        可是,在JS中傳遞的參數如果是方法,那么后面不能加上小括號,如果加上的話,就認為是調用了這個方法,會立即執行,這樣一來,就更別說是傳遞參數了,那么如果解決這個問題呢?

錯誤的代碼:

1 window.onload = function() {
2     function fun(x) {
3         alert(x);    
4     }
5     $("#btn").click(fun(5));
6 }

        其實啊,如果你以前是這樣寫的,那么就說你對這個原理還不清楚!

        click()方法接收的是一個參數,就像JAVA一個,你完全可以寫一個方法進去,然后click()得到的參數就是這個方法的返回值。所以,如果想要傳遞一個方法進去,只需要在你調用的方法那里加上一個return function(){}就可以了,當然這個方法也是可以帶參數的。這樣一來,這個方法就會返回一個方法。你只需要將你想要的代碼寫在return的方法里面就可以了。

正確的代碼:

 

 1 $(document).ready(function() {
 2     function method(a) {
 3         return function() {
 4             fun(a);
 5         }
 6     }
 7     function fun(num) {
 8         alert(num);
 9     }
10     function() {
11         $("btn").click(method(x));
12     }
13 });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM