JavaScript mensimulasikan petua namespace_javascript

WBOY
Lepaskan: 2016-05-16 16:03:30
asal
1193 orang telah melayarinya

Dalam C dan C#, ruang nama digunakan untuk meminimumkan konflik nama. Contohnya, dalam Rangka Kerja .NET, ruang nama membantu membezakan kelas Microsoft.Build.Task.Message daripada System.Messaging.Message. JavaScript tidak mempunyai sebarang ciri khusus bahasa untuk menyokong ruang nama, tetapi mudah untuk meniru ruang nama menggunakan objek. Jika anda mencipta pustaka JavaScript, anda boleh membungkusnya di dalam ruang nama tanpa menentukan fungsi dan kelas global, seperti ini:

var MSDNMagNS = {};
MSDNMagNS.Pet = function(name) { // code here };
MSDNMagNS.Pet.prototype.toString = function() { // code };
var pet = new MSDNMagNS.Pet(“Yammer”);
Salin selepas log masuk

Tahap ruang nama mungkin tidak unik, jadi ruang nama bersarang boleh dibuat:

var MSDNMagNS = {};
// nested namespace “Examples”
MSDNMagNS.Examples = {};
MSDNMagNS.Examples.Pet = function(name) { // code };
MSDNMagNS.Examples.Pet.prototype.toString = function() { // code };
var pet = new MSDNMagNS.Examples.Pet(“Yammer”);
Salin selepas log masuk

Seperti yang anda boleh bayangkan, menaip ruang nama bersarang yang panjang ini boleh memenatkan. Nasib baik, pengguna perpustakaan boleh dengan mudah menentukan alias yang lebih pendek untuk ruang nama:

// MSDNMagNS.Examples and Pet definition...
// think “using Eg = MSDNMagNS.Examples;”
var Eg = MSDNMagNS.Examples;
var pet = new Eg.Pet(“Yammer”);
alert(pet);
Salin selepas log masuk

Jika anda melihat kod sumber perpustakaan Microsoft AJAX, anda akan mendapati bahawa pengarang perpustakaan menggunakan teknologi yang sama untuk melaksanakan ruang nama saya tidak akan menerangkannya secara terperinci di sini untuk mencarinya.

Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu semua orang yang belajar javascript

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan