私が理解したいことを説明しようとする 2 つの例を見てみましょう。
var Car = function(){
// Init class
function Car() { };
// Private func/vars
var private = { color:'red' };
// Public func/vars
Car.prototype = {
newColor: function(color) { private.color = color },
getColor: function() { return private.color }
};
return Car.prototype; // return with prototype
};
var myCar = new Car();
と:
var Car = (function(){
// Init class
function Car() { };
// Private func/vars
var private = { color:'red' };
// Public func/vars
Car.prototype = {
newColor: function(color) { private.color = color },
getColor: function() { return private.color }
};
return Car; // avoid prototype adding parentheses on next line;
})();
var myCar = new Car();
見てみましょう! どちらのクラスも関数式として作成され、どちらも同じように機能します。それらの唯一の違いは次のとおりです。2 番目は Car 関数を返し、prototype プロパティを回避し、代わりに IIFE を使用します。
return Car.prototype;
useと avoid IIFE と use return Car;
using IIFE (クラス宣言の最後の括弧)の違いは何ですか。