-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()動作しません。

2 番目では、オブジェクトを作成し、関数を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 に答える