Kata Pengantar
Ringkaskan gula sintaks JavaScript yang saya temui baru-baru ini dan kongsikannya dengan semua orang.
Setiap keping gula-gula mempunyai arahan dan contoh yang terperinci, jadi saya tidak akan menerangkan secara terperinci.
Semakan jenis yang tepat
/*
* @fungsi:
* Contoh semak taip
* Melalui kaedah ini, anda boleh menyemak sama ada pembolehubah ialah jenis data yang dijangka
* @params:
* pembolehubah obj untuk disemak, diperlukan
* senarai putih jenis data konfigurasi, pilihan, lalai ialah semua jenis
* @kembali:
* benar bermaksud cek lulus, salah bermakna gagal
* @contoh:
* typeCheck("str"); //return true
* typeCheck({},{"[object Array]": 1}); //return false
*/
fungsi typeCheck(obj,config){
var hasOp = Object.prototype.hasOwnProperty,
toStr = Object.prototype.toString,
_config = konfigurasi ||
"[Objek objek]": 1,
"[Susun Objek]": 1,
"[objek Regex]": 1,
"[Rentetan objek]": 1,
"[Nombor objek]": 1,
"[objek Boolean]": 1,
"[Fungsi objek]": 1,
"[objek Tidak Ditakrifkan]": 1,
"[objek Nol]": 1
};
Kembalikan hasOp.call(_config,toStr.call(obj));
}
Cara yang elegan untuk menambah prototaip
/*
* @penerangan:
* Cara yang elegan untuk menambah prototaip
* Laksanakan coretan kod ini dalam skop awam
*/
if(typeof Function.prototype.method !== "function") {
Function.prototype.method = function(nama,fn){
This.prototype[name] = fn;
Kembalikan ini;
};
}
/*
* Contoh penggunaan
*/
//Tentukan "kelas ujian"
function testFn(){
}
//Tambah kaedah ahli kelas ujian
testFn.method("tambah",fungsi(a,b){
Kembalikan b;
}).kaedah("sub",fungsi(a,b){
Kembalikan a - b;
});
//Instantiation
var testObj = new testFn();
//Panggil kaedah ahli
testObj.add(1,5); //kembali 6
testObj.sub(7,2); //kembali 5
Cipta ruang nama dengan cepat
Salin kod Kod adalah seperti berikut:
/*
* @fungsi:
* Cipta ruang nama
* @params:
* ungkapan ruang nama bekas, contohnya: NSROOT.service.impl
* Ungkapan ini mesti ditulis bermula dari nod akar
* @kembali:
* Mengembalikan Objek, Objek ini ialah nod terakhir ungkapan
* @yang lain:
* Jika anda tidak suka nama NSROOT, cuma cari dan gantikan
*/
var NSROOT = NSROOT || {};
NSROOT.namespace = function(ex){
var _ex = ex ||. "",
nsArray = _ex.split("."),
parentNode = NSROOT,
_s = "",
i = 0;
//Tentukan sama ada ruang nama bermula daripada nod akar
if(nsArray[0] !== "NSROOT"){
throw("Ruang nama mesti bermula dari nod akar!");
}
//Alih keluar nod akar
nsArray = nsArray.slice(1);
untuk(i = 0;i
_s = nsArray[i];
If(parentNode[_s] === undefined){
parentNode[_s] = {};
}
parentNode = parentNode[_s];
}
Kembalikan parentNode;
};
/*
* Contoh penggunaan
*/
//Buat ruang nama baharu
var impl = NSROOT.namespace("NSROOT.service.impl");
alert(impl === NSROOT.service.impl); //return true
//Buat ruang nama sedia ada tanpa menulis ganti data asal
NSROOT.namespace("NSROOT.service.impl");
alert(impl === NSROOT.service.impl); //return true