我想要的只是通過立即調用函數在控制檯中打印消息。這裏是例子:爲什麼我的JS代碼不起作用?
function (a){
return function (a){
console.log('msg' + a);
}
}(3);
PS
請不要評判我的太快,我纔開始學習的JavaScript。
我想要的只是通過立即調用函數在控制檯中打印消息。這裏是例子:爲什麼我的JS代碼不起作用?
function (a){
return function (a){
console.log('msg' + a);
}
}(3);
PS
請不要評判我的太快,我纔開始學習的JavaScript。
如果你調用一個自調用anonnymous功能,你需要將其封裝:
(function (a){
return function (a){
console.log('msg' + a);
}
}(3));
然後當你有一個關閉的值不會傳遞到返回的功能,所以試試這個,你會看到:
(function (a){
return function (a){
console.log('msg' + a);
}
}(3)(7));
這是(3)(7)寫在簡單的詞的例子:
var f1 = function (a){
console.log(a);
return function (a){
console.log('msg' + a);
}
}
var inheritFunction = f1(3); // Calling f1(3) won't return what you are looking for.
inheritFunction(7); // Returns the original value
用圓括號括起來,使您的代碼有效的JavaScript語法。我想你想聲明一些匿名函數。這裏是如何做到這一點:
(function() {
return function(a) {
console.log('msg' + a);
}
})()(3);
或者你的意思是:
(function someFunc(a) {
console.log('msg' + a);
})(3);
在您的匿名範圍返回函數第一種情況,所以你需要傳遞任何參數之前先調用它。
在第二種情況下,它只是通過直接傳遞參數來立即聲明和執行的匿名函數。
第一個例子。 – barbara 2014-09-28 22:04:26
我將停止修復您的帖子,現在(剛剛投票給您);;) – 2014-09-28 22:05:38
這可能會實現:
(function(a) {
return function(a) {
console.log('msg' + a);
}
})(3)(5);
它說msg5
,你找出原因;)
非常有趣的例子。但我不明白他們之間的區別。我的意思是這個差異在'}(3));'和'}(3)(7));' – barbara 2014-09-28 22:18:08
哦,我現在看到了。謝謝你的解釋。 – barbara 2014-09-29 11:20:32
很高興幫助。你從Codeschool學習嗎? – Rod 2014-09-29 19:30:56