js關於有參函式的呼叫。
阿新 • • 發佈:2019-01-31
學了這麼久的js居然沒有意識到這個問題。
對於一個無參函式,呼叫很簡單,如下:
<body>
<input type="button" value="click me" id="btn">
<script>
var btn=document.getElementById("btn");
function test(){
alert("hi");
}
btn.onclick=test;
</script>
</body>
所以,我理所當然地認為,有參函式的呼叫,如下:
但是,一重新整理,函式就執行了。是由於只要函式是函式名+()的形式就會執行。<body> <input type="button" value="click me" id="btn"> <script> var btn=document.getElementById("btn"); function test(text){ alert(text); } btn.onclick=test('hi'); </script> </body>
所以,要呼叫有參函式,可以如下:
<body>
<input type="button" value="click me" id="btn">
<script>
var btn=document.getElementById("btn");
function test(text){
alert(text);
}
btn.onclick=function(){
test("hi");
};
</script>
</body>
或者:
<body> <input type="button" value="click me" onclick=test("hi")> <script> var btn=document.getElementById("btn"); function test(text){ alert(text); } </script> </body>
以後學習不能放掉死角,不能趕速度。最簡單的,也是最容易忽略的。