-4

以下2个声明有什么区别?

var vehiclePrototype = function{
    function init(carModel) {
        this.model = carModel;
    }


};

var vehiclePrototype = {
    init: function (carModel) {
        this.model = carModel;
    }

};
4

2 回答 2

2

在第一个中,init()仅在外部函数内可用。 vehiclePrototype.init()不会工作。

在第二个中,您正在创建一个对象并将一个函数分配给该init属性。 vehiclePrototype.init()将工作。

此外,您的第一个示例中存在语法错误。你需要使用var vehiclePrototype = function () {你的第一行。

于 2013-01-01T01:50:19.097 回答
2

首先,顶部被破坏了,所以天真地顶部被破坏了,底部是一个包含函数的对象文字。

假设语法正确,第一个仍然没有做任何事情,因为 init 的作用域是函数并且没有办法逃到外面。不同之处在于顶部是一个空函数,它与包含函数的对象文字不同。

也许你想要这个:

var vehiclePrototype = function () {
    this.init = function (carModel) {
        this.model = carModel;
    };
};
于 2013-01-01T01:51:32.543 回答