下面两个声明之间的区别是什么?
var vehiclePrototype = function{
function init(carModel) {
this.model = carModel;
}
};
和
var vehiclePrototype = {
init: function (carModel) {
this.model = carModel;
}
};
答案 0 :(得分:2)
在第一个中,init()
仅在外部函数中可用。 vehiclePrototype.init()
无效。
在第二步中,您将创建一个对象并为init
属性分配一个函数。 vehiclePrototype.init()
可以使用。
此外,您的第一个示例中存在语法错误。您需要使用var vehiclePrototype = function () {
作为第一行。
答案 1 :(得分:2)
首先,顶部被打破,天真地顶部被打破,底部是一个包含函数的对象文字。
假设语法正确,第一个仍然没有做任何事情,因为init的作用域是函数,无法转义到外部。不同之处在于top是一个空函数,它与包含函数的对象文字不同。
也许你想要这个:
var vehiclePrototype = function () {
this.init = function (carModel) {
this.model = carModel;
};
};