Perbezaan antara Model Paparan Kalah Mati Diisytiharkan sebagai Literal Objek dan Fungsi
Dalam Knockout.js, Model Lihat boleh diisytiharkan sama ada sebagai literal objek atau fungsi. Walaupun kedua-dua pendekatan mempunyai tujuan untuk mendedahkan data dan logik kepada paparan, terdapat beberapa perbezaan yang perlu dipertimbangkan.
Objek Pengisytiharan Literal:
var viewModel = { firstname: ko.observable("Bob") }; ko.applyBindings(viewModel );
Pengisytiharan Fungsi:
var viewModel = function() { this.firstname= ko.observable("Bob"); }; ko.applyBindings(new viewModel ());
Kelebihan Menggunakan Fungsi:
Akses terus kepada nilai ini:
Fungsi menyediakan akses segera kepada contoh yang dibuat (ini), membolehkan sifat pengiraan ringkas dan definisi kaedah.
var ViewModel = function(first, last) { this.full = ko.computed(function() { return this.first() + " " + this.last(); }, this); };
Menetapkan peribadi pembolehubah menggunakan diri:
Jika anda menghadapi masalah dengan skop yang betul ini, anda boleh menetapkan pembolehubah (diri) bersamaan dengan contoh model paparan dan sebaliknya menggunakannya untuk mengekalkan konteks yang betul.
var ViewModel = function() { var self = this; this.items = ko.observableArray(); this.removeItem = function(item) { self.items.remove(item); } };
Ikat ini dengan bind:
Untuk penyemak imbas moden, fungsi bind boleh digunakan untuk memastikan fungsi tertentu dipanggil dengan nilai ini yang betul.
var ViewModel = function() { this.items = ko.observableArray(); this.removeItem = function(item) { this.items.remove(item); }.bind(this); };
Memilih pendekatan yang hendak digunakan bergantung pada keperluan khusus dan pilihan aplikasi anda. Pengisytiharan fungsi menawarkan fleksibiliti dan enkapsulasi yang lebih besar, manakala pengisytiharan literal objek lebih mudah dan lebih mudah untuk senario asas yang pembolehubah persendirian atau sifat yang dikira tidak diperlukan.
Atas ialah kandungan terperinci ## Objek Literal vs Fungsi dalam Knockout.js: Perisytiharan Model Paparan Mana yang Sesuai untuk Anda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!