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