Baseline Widely available
function
å
³é®åå¯ä»¥ç¨æ¥å¨ä¸ä¸ªè¡¨è¾¾å¼ä¸å®ä¹ä¸ä¸ªå½æ°ã
ä½ ä¹å¯ä»¥ä½¿ç¨ Function
æé 彿°åä¸ä¸ªå½æ°å£°ææ¥å®ä¹å½æ°ã
let function_expression = function [name]([param1[, param2[, ..., paramN]]]) { statements };
ä» ES2015å¼å§ï¼ä½ ä¹å¯ä»¥ä½¿ç¨ç®å¤´å½æ° ã
åæ°name
彿°åç§°ãå¯è¢«çç¥ï¼æ¤ç§æ åµä¸ç彿°æ¯å¿å彿°ï¼anonymousï¼ã彿°åç§°åªæ¯å½æ°ä½ä¸çä¸ä¸ªæ¬å°åéã
paramN
è¢«ä¼ éç»å½æ°çä¸ä¸ªåæ°åç§°ãä¸ä¸ªå½æ°è³å¤æ¥æ 255 ä¸ªåæ°ã
statements
ææå½æ°ä½çè¯å¥ã
彿°è¡¨è¾¾å¼ï¼function expressionï¼é常类似äºå½æ°å£°æï¼function statementï¼ï¼è¯¦æ æ¥ç彿°å£°æï¼ï¼å¹¶ä¸ä¸¤è æ¥æå ä¹ç¸åçè¯æ³ã彿°è¡¨è¾¾å¼ä¸å½æ°å£°æçæä¸»è¦åºå«æ¯å½æ°åç§°ï¼function nameï¼ï¼å¨å½æ°è¡¨è¾¾å¼ä¸å¯çç¥å®ï¼ä»èå建å¿å彿°ï¼anonymous functionsï¼ãä¸ä¸ªå½æ°è¡¨è¾¾å¼å¯ä»¥è¢«ç¨ä½ä¸ä¸ª IIFEï¼Immediately Invoked Function Expressionï¼å³æ¶è°ç¨ç彿°è¡¨è¾¾å¼ï¼ï¼å®ä¸æ¦å®ä¹å°±è¿è¡ãæ´å¤ä¿¡æ¯è¯·æ¥ç彿°ã
彿°è¡¨è¾¾å¼æå (Function expression hoisting)JavaScript ä¸ç彿°è¡¨è¾¾å¼æ²¡ææåï¼ä¸å彿°å£°æï¼ä½ å¨å®ä¹å½æ°è¡¨è¾¾å¼ä¹åä¸è½ä½¿ç¨å½æ°è¡¨è¾¾å¼ï¼
notHoisted(); // TypeError: notHoisted is not a function
var notHoisted = function () {
console.log("bar");
};
å
·å彿°è¡¨è¾¾å¼
å¦æä½ æ³å¨å½æ°ä½å é¨å¼ç¨å½å彿°ï¼åéè¦å建ä¸ä¸ªå ·å彿°è¡¨è¾¾å¼ãç¶å彿°åç§°å°ä¼ï¼ä¸åªä¼ï¼ä½ä¸ºå½æ°ä½ï¼ä½ç¨åå ï¼çæ¬å°åéãè¿æ ·ä¹å¯ä»¥é¿å 使ç¨éæ åç arguments.callee 屿§ã
var math = {
factorial: function factorial(n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
},
};
è¢«å½æ°è¡¨è¾¾å¼èµå¼çé£ä¸ªåé伿ä¸ä¸ª name 屿§ï¼å¦æä½ æè¿ä¸ªåéèµå¼ç»å¦ä¸ä¸ªåéçè¯ï¼è¿ä¸ª name 屿§çå¼ä¹ä¸ä¼æ¹åã妿彿°æ¯ä¸ä¸ªå¿å彿°ï¼é£ name 屿§çå¼å°±æ¯è¢«èµå¼çåéçåç§°ï¼éèå¼ï¼ã妿彿°ä¸æ¯å¿åçè¯ï¼é£ name 屿§çå¼å°±æ¯è¿ä¸ªå½æ°çåç§°ï¼æ¾æ§å¼ï¼ãè¿å¯¹äºç®å¤´å½æ°ä¹åæ ·éç¨ï¼ç®å¤´å½æ°æ²¡æååï¼æä»¥ä½ åªè½èµäº name 屿§ä¸ä¸ªéæ§åï¼ã
var foo = function () {};
foo.name; // "foo"
var foo2 = foo;
foo2.name; // "foo"
var bar = function baz() {};
bar.name; // "baz"
console.log(foo === foo2); //true
console.log(typeof baz); // undefined
console.log(bar === baz); // false (errors because baz == undefined)
示ä¾
ä¸é¢çä¾åå®ä¹äºä¸ä¸ªå¿å彿°å¹¶æå®èµå¼ç»åé xãè¿ä¸ªå½æ°è¿åå®åæ°çå¹³æ¹ï¼
var x = function (y) {
return y * y;
};
æ´å¤æ åµä¸è¢«å½ä½åè°å½æ°ä½¿ç¨ï¼
button.addEventListener("click", function (event) {
console.log("button is clicked!");
});
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4