お世話になっております。
JavaScriptを勉強中のものです。
関数に関しての質問です。
「開眼!JavaScript」(オライリージャパン)65pに第一級関数の説明とともに、下記のコードが記載されていました。
var funcD = function(func){ return func; } var runFuncPassedToFuncD = funcD(function(){ console.log('Hi'); }); runsFuncPassedToFuncD();
これを少し変えまして、
var funcD = function(func){ return func } var runFUncPassedToFuncD = funcD(function(){console.log('a')}) console.log(runFUncPassedToFuncD())
このようにしたところ、
a
undefined
とコンソールされました。
undefinedがコンソールされた理由はわかるのですが、「a」がコンソールされたことに戸惑っています。
funcDでは return func となっており、この場合 runFUncPassedToFuncD の生成の際にfuncDの引数として入れたfunction(){console.log('a')}は実行されないのでは、と思ったのですが...
理由をお教えいただけると、幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー