オブジェクトリテラルの基礎を理解しようとしています
window.Test = ({
attribute1:'This is',
attribute2:'a test',
function1: function(){
alert(this.attribute1 + ' ' + this.attribute2);
}
});
//TEST 1
Test.function1(); // "This is a test"
//TEST 2
var tester = new Test(); //ERROR: Object is not a function
tester.function1();
私が正しく理解していれば、ウィンドウオブジェクトwindow.Test =
にグローバル変数が作成されます。と同じでしょう。したがって、TEST1 が機能するのは論理的です。var Test =
TEST2 でリテラルをインスタンス化しようとしましたが、これは変数であるため不可能です。次のコードが機能する Backbone.js からアイデアを得ました。
window.Product = Backbone.Model.extend({});
var p = new Product();
ここでも Product が変数であると予想されるため、インスタンス化する方法はありません。
バックボーンの例と私の例の違いを説明できる人はいますか? リテラルの基本的な理解を見逃しているようです。