让我们来看看两个例子中,我会尽力解释我想明白了什么。
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();
让我们来看看!这两个类中创建为函数表达式,并都同样的工作。 它们之间唯一的区别是:第一,其原型属性返回租车功能。 第二个作品还车功能,避免了prototype属性,而使用IIFE。
什么是使用之间的差异return Car.prototype;
并避免IIFE和使用return Car;
使用IIFE(类声明的端括号内)。