私はノックアウトが初めてです。これら3つの違いと、最新のフレームワークごとにどれが最適かを知りたいです。
アプローチ 1 (InvoiceTypes): コンマを使用してすべての変数とメソッドを宣言し、最後に return ステートメントを使用してパブリック インターフェイス メソッドを公開します。
アプローチ 2 (OrderTypes): アプローチ 1 と似ていますが、セミコロンを使用して各変数またはメソッドを区別しています。
アプローチ 3 (ModelTypes): アプローチ 2 に似ていますが、return ステートメントはありません。
最後にjquery readの各アプローチでのstartメソッドの呼び出し方を指定。
アプローチ1
window.Domain = window.Domain || {}
window.Domain.InvoiceTypes = function () {
var types = ko.observableArray(),
getTypes = function() { return types; },
start = function() {
types.push({name:"knockout"});
},
submit = function() {
alert("submit");
};
return {
getTypes: getTypes,
start: start,
submit: submit
};
}();
アプローチ 2
window.Domain.OrderTypes = function () {
var types = ko.observableArray();
var getTypes = function() { return types; };
var start = function() {
types.push({name:"knockout"});
};
var submit = function() {
alert("submit");
};
return {
getTypes: getTypes,
start: start,
submit: submit
};
}();
アプローチ 3
window.Domain.ModelTypes = function () {
var self = this;
self.types = ko.observableArray();
self.getTypes = function() { return types; };
self.start = function() {
types.push({name:"knockout"});
};
self.submit = function() {
alert("submit");
};
};
<script type="text/javascript">
$(document).ready(function() {
window.Domain.InvoiceTypes.start();
window.Domain.OrderTypes.start();
var obj = new window.Domain.ModelTypes();
obj.start();
});
</script>
明確にわかる違いは、単一の var 宣言と return ステートメント、およびこのキーワードによる self の使用です。
入力してください。