Trong Javascript, có một vài kỹ thuật nổi bật rõ ràng để tạo và quản lý các lớp / không gian tên trong javascript.
Tôi tò mò không biết tình huống nào bảo đảm sử dụng một kỹ thuật so với kỹ thuật kia. Tôi muốn chọn một và gắn bó với nó di chuyển về phía trước.
Tôi viết mã doanh nghiệp được duy trì và chia sẻ trên nhiều nhóm và tôi muốn biết cách thực hành tốt nhất khi viết javascript duy trì là gì?
Tôi có xu hướng thích Tự thực hiện các chức năng ẩn danh tuy nhiên tôi tò mò không biết phiếu bầu của cộng đồng là gì đối với các kỹ thuật này.
Nguyên mẫu:
function obj()
{
}
obj.prototype.test = function() { alert('Hello?'); };
var obj2 = new obj();
obj2.test();
Chức năng ẩn danh tự đóng:
//Self-Executing Anonymous Function
(function( skillet, $, undefined ) {
//Private Property
var isHot = true;
//Public Property
skillet.ingredient = "Bacon Strips";
//Public Method
skillet.fry = function() {
var oliveOil;
addItem( "\t\n Butter \n\t" );
addItem( oliveOil );
console.log( "Frying " + skillet.ingredient );
};
//Private Method
function addItem( item ) {
if ( item !== undefined ) {
console.log( "Adding " + $.trim(item) );
}
}
}( window.skillet = window.skillet || {}, jQuery ));
//Public Properties
console.log( skillet.ingredient ); //Bacon Strips
//Public Methods
skillet.fry(); //Adding Butter & Fraying Bacon Strips
//Adding a Public Property
skillet.quantity = "12"; console.log( skillet.quantity ); //12
//Adding New Functionality to the Skillet
(function( skillet, $, undefined ) {
//Private Property
var amountOfGrease = "1 Cup";
//Public Method
skillet.toString = function() {
console.log( skillet.quantity + " " +
skillet.ingredient + " & " +
amountOfGrease + " of Grease" );
console.log( isHot ? "Hot" : "Cold" );
};
}( window.skillet = window.skillet || {}, jQuery ));
//end of skillet definition
try {
//12 Bacon Strips & 1 Cup of Grease
skillet.toString(); //Throws Exception
} catch( e ) {
console.log( e.message ); //isHot is not defined
}
Tôi cảm thấy rằng tôi nên đề cập rằng Hàm ẩn danh tự thực thi là mẫu được sử dụng bởi nhóm jQuery.
Cập nhật
Khi tôi hỏi câu hỏi này, tôi không thực sự thấy tầm quan trọng của những gì tôi đang cố gắng hiểu. Vấn đề thực sự trong tay là liệu có nên sử dụng mới để tạo phiên bản của các đối tượng của bạn hay sử dụng các mẫu không yêu cầu các nhà xây dựng / sử dụng new
từ khóa.
Tôi đã thêm câu trả lời của riêng mình, vì theo tôi, chúng ta nên sử dụng các mẫu không sử dụng new
từ khóa.
Để biết thêm thông tin xin vui lòng xem câu trả lời của tôi.