以下代码是否等同于具有相关功能的类? 'obj.start'函数和startEngine()函数有什么区别? (不逻辑,结构明智......)
var Car = function (carElement)
{
var obj = {},
isRunning = false,
dashboard,
speed = 0,
accelerometer,
gearElement,
transmission =
{
'first': { ts: 15, rpm: 2 },
'second': { ts: 30, rpm: 4 },
'third': { ts: 50, rpm: 5 },
'fourth': { ts: 80, rpm: 5 },
'fifth': { ts: 110, rpm: 6 }
};
function startEngine()
{
//some code to start engine
}
obj.start = function ()
{
//more code..
}
obj.stop = function ()
{
//even more code...
};
(function init()
{
obj.start();
}());
return obj;
};
[编辑] This question实际上描述了我的问题是什么
答案 0 :(得分:2)
以下代码是否等同于具有相关功能的类?
这取决于你如何实例化它。如果您使用函数声明样式(如startEngine使用),并且使用new
关键字对其进行实例化,并删除return
值,则为yes(尽管startEngine是私有的,但在您创建之前不会公开指向它的公共指针。)
'obj.start'函数和startEngine()函数有什么区别?
区别在于:
Car
“类”的类似私有的方法。 obj.start不是。Car
“class”的一个属性。obj
外部调用Car
的方法,而从外部无法访问startEngine Car
,没有公共指针。