Definisi: Tentukan serangkaian algoritma, merangkumnya satu per satu ke dalam fungsi, atau mereka dapat dienkapsulasi secara seragam menjadi objek sebagai atribut, dan kemudian mendefinisikan metode. Metode ini dapat secara otomatis memilih dan menjalankan algoritma yang sesuai berdasarkan parameter.
Ini umumnya digunakan dalam situasi di mana ada banyak opsi untuk dipilih saat menerapkan fungsi.
Contoh 1: Hitung bonus akhir tahun berdasarkan gaji karyawan, nilai kinerja S, A, B, dan C.
// Objek kebijakan yang merangkum semua algoritma vaR strategi = {'s': function (gaji) {return gaji*4; }, 'A': function (gaji) {return gaji*3; }, 'B': function (gaji) {return gaji*2; }, 'C': function (gaji) {return gaji*1; }} // Tentukan metode algoritma pemilihan otomatis var calculateBonUs = function (level, gaji) {strategi pengembalian [level] (gaji);} // gunakan calculateBonus ('s', 9000); // 36000CalculateBonus ('B', 5000); // 10000Contoh 2: Verifikasi bentuk
// Objek Kebijakan yang mendefinisikan algoritma verifikasi vaR strategi = fungsi () {isempty: function (value, errormSg) {if (value = '') {return errorrormSg; }} Outrangle: function (value, min, max, errorMsg) {if (value.length> max || value.length <min) {return errorMsg; }} issame: function (oldvalue, newValue, errorMsg) {if (newValue! == oldValue) {return errorMsg; }} isMobile: function (value, errorMsg) {if (!/(^1 [3 | 5 | 8] [0-9] {9} $)/. Test (value)) {return errormsg; }} ......}Anda juga tidak dapat mendefinisikan kelas validator berikut, dan secara langsung memanggil metode atribut objek Strategi ketika hilangnya peristiwa fokus dipicu untuk memverifikasi item input saat ini.
// Tentukan validatorVar validator = function () {this.cache = [];} validator.prototype.add = function (elem, aturan) {var self = this; untuk (var i = 0, aturan; aturan = aturan [i ++]) {(function (aturan) {var strategi = aturan.strategy.split (':'); var errorrormsg = aturan.errormsg; mandiri.cache.push (function () {var strategi = strategi. strategi [strategi] .Apply (elem, strategi);})}) (aturan)}} validator.prototype.start = function () {for (var i = 0, func; func = this.cache [i ++]) {var errormsg = func (); if (errorMsg) {return errorMsg; }}}menggunakan:
var validator = validator baru (); validator.add (elem.username, [{strategi: 'isEmpty', errorMsg: 'nama pengguna tidak bisa kosong'}, {strategi: 'Outrangle: 6: 12', errorrormsg: 'Panjang nama pengguna adalah 6-12 bits'}]); ...... var errorrormsg = validator.Lampiran: Objek Konfigurasi Parameter
Jika ada fungsi foo (a, b, c, d, e, f ...), ia memiliki banyak parameter, fungsi seperti itu sulit digunakan dan parameter sulit diingat! Cara yang lebih baik adalah dengan menggunakan objek untuk berisi parameter ini, dan kemudian meneruskan objek ke fungsi, dan kemudian memproses properti objek.
var prop = {a: 55, b: 'ss', c: function () {...} d: {x: 1, y: 2} ...} foo (prop);Dengan cara ini, tidak perlu mengingat urutan parameter saat menggunakan fungsi. Ingatlah beberapa nama atribut dari objek parameter, yang tidak mudah untuk membuat kesalahan
Referensi: "pola javascript" "pola desain javascript dan praktik pengembangan"
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.