時使用JavaScript,如果你把東西在函數的括號,如:JavaScript:函數myFunction(**這是什麼**);
<button onclick="myFunction('Hello')">Click Here!</button>
,並在JS:
function myFunction(i);
,因爲它是運行是否儘快確定var i = "Hello"
,或者別的東西?
時使用JavaScript,如果你把東西在函數的括號,如:JavaScript:函數myFunction(**這是什麼**);
<button onclick="myFunction('Hello')">Click Here!</button>
,並在JS:
function myFunction(i);
,因爲它是運行是否儘快確定var i = "Hello"
,或者別的東西?
它是否定義變種i =「你好」,只要它運行,或者別的什麼?
當呼叫發生時,值"Hello"
被傳遞到功能,採用參數稱爲i
它接收。所以在功能代碼中,參照i
給出值"Hello"
。
在您的示例中,當用戶單擊該按鈕時發生調用,因爲該單擊會觸發您已定義的onclick
屬性中的代碼。
從文檔
每個執行上下文具有相關聯的VariableEnvironment。 在 執行上下文中評估的ECMAScript代碼中聲明的變量和函數作爲該變量環境的 環境記錄中的綁定添加。對於功能代碼,參數也作爲 綁定到該環境記錄。
查看http://ecma-international.org/ecma-262/5.1/#sec-10.5的完整文檔。
因此,它相當於綁定var i = "hello";
,因爲它們將對應於執行上下文的VariableEnviroment中的相同條目。
您可以通過做在行動看到這一點:
function hello(i) {
var i ="no hello";
console.log(arguments[0]);
}
hello("hi")
>>"no hello"
FWIW,ECMA現在有一個在線的,可鏈接的HTML版本:http://www.ecma-international.org/ecma -262/5.1 /#仲丁基10.5 – 2013-03-12 22:50:33
與您的代碼:
<button onclick="myFunction('Hello')">Click Here!</button>
function myFunction(i) {
alert(i); // display the i value on this case «Hello»
}
「I」爲您的功能
參數/參數現在,如果你改變你好再見我的價值將«再見»只在你的功能
<button onclick="myFunction('Bye')">Click Here!</button>
function myFunction(i) {
alert(i); // display «Bye»
}
alert(i); // outside the function i is undefined ;)
是的,它通過變量。這就是所謂的爭論。 [但它是一個五分鐘的論點或整整半個小時?](http://www.youtube.com/watch?v=kQFKtI6gn9Y) – Popnoodles 2013-03-12 22:38:35
這是一個教程級別的問題。閱讀:https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Functions – millimoose 2013-03-12 22:39:24