私はオブジェクトを返すIIFEを持っています。私のapp.jsファイル(index.html内のscriptタグに追加する)では、typeof私のIIFEのコンソールにログオンし、それがオブジェクトです。それは機能ではありませんか?なぜ型はオブジェクトを返すのですか?IIFEのtypeofをコンソールに記録すると、それは関数ではなくオブジェクトです、なぜですか?
は、ここにapp.jsの私の生命維持です:「すぐに呼び出された関数式」
var UIController = (function() {
var DOMstrings = {
inputType: '.add__type',
description: '.add__description',
value: '.add__value',
addBtn: '.add__btn'
};
return {
getInput: function() {
// return an object containing all values from UI elements
return {
type: document.querySelector(DOMstrings.inputType).value, // will be either income or expense
description: document.querySelector(DOMstrings.description).value, // description of transaction
value: document.querySelector(DOMstrings.value).value // value of transaction
};
},
getDOMStrings: function() {
return DOMstrings;
}
};
})();
console.log(typeof UIController);
わかりません。あなたはこのコードが何であるかを理解しているように聞こえる "IIFE"という言葉を使っています。しかし、関数の代わりにオブジェクトを取得する理由を尋ねると、このコードが何であるかを理解していないように見えます。 IIFEは何と思いますか?なぜあなたは機能を期待していますか? – ruakh
私はそれが何をするのか理解していますが、typeof UIControllerはなぜ関数ではなくオブジェクトですか?私が関数式を書いてその型をコンソールに記録した場合、それはオブジェクトではなく関数なので、なぜこの場合にオブジェクトが得られますか? – Mjuice
なぜ 'var x =" foo ".length; typeof x'' '' foo''が 'string'のとき' number'を返しますか? – melpomene