1. 程式人生 > >js關於有參函式的呼叫。

js關於有參函式的呼叫。

學了這麼久的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>

以後學習不能放掉死角,不能趕速度。最簡單的,也是最容易忽略的。