2012-02-07 4 views
3

JavaScriptとknockoutjsを初めて使用しています。これはおそらく最も基本的な質問であり、私はあまりにも愚かなものではないとここで尋ねることを願っています。knockoutjsのビューモデルを宣言する

多くのドキュメントでは、ビューモデルが2つの異なる方法で宣言されています。時々それらは関数として宣言され、他の時はそれらは普通のオブジェクトです。相違点は何ですか?それぞれを使用するシナリオは何ですか?

var viewModel = { 
     property: ko.observable() 
    } 

それとも

var viewModel = function(){ 
     this.property = ko.observable() 
    } 

謝罪これはばかげた質問....

+0

'プロパティ:ko.observable()'関数の内部ではなく、 'this.property = ko.observable();' – xec

+0

感謝XEC、私の悪いです。私は質問を修正した – macou

答えて

1

ある場合は、2番目の例では、JavaScriptでコンストラクタ関数です - JavaScriptは "クラス" を持っていないので、それはあなたが "クラスライクな"インスタンス作成を実装する方法です。

さらに詳しい情報:http://www.javascriptkit.com/javatutors/oopjs2.shtmlあなたが使用することはできません

+0

ありがとうValは、リンクを感謝します。私は多くの読書をしています;) – macou

+2

オブジェクトリテラル(最初の例)は非常に使いやすく、そのため多くの例がそれらを使用しています。ただし、ビューモデルを作成するための関数(およびモジュールパターンや公開モジュールパターンなどのパターン)を使用すると、もう少し堅牢です。ノックアウトを学んでいる間は、あまり心配しないでください。確かにそれらの話題を読んで、あなたがKOをより深く理解するようになると、それはより意味をなさないでしょう。 –

関連する問題