Rumah  >  Artikel  >  hujung hadapan web  >  JavaScript mensimulasikan petua namespace_javascript

JavaScript mensimulasikan petua namespace_javascript

WBOY
WBOYasal
2016-05-16 16:03:301154semak imbas

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”);

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”);

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);

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

Kenyataan:
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