Javascript中以下声明之间的区别是什么

时间:2013-01-01 01:45:21

标签: javascript

下面两个声明之间的区别是什么?

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


};

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

};

2 个答案:

答案 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;
    };
};