tôi có các module sau đây với hai phương pháp, A()
và B()
:Thêm một phương pháp mới để hiện mô-đun đối tượng mẫu
var Module = (function() {
function A(){
console.log("Module: A");
B();
};
function B(){
console.log("Module: B");
Module.Utils.C(); /* Here is the problem */
};
return {
A:A,
B:B
}
}());
Giả sử tôi muốn thêm một phương pháp mới C()
...
function C(){
console.log("C");
};
... vào mô-đun ở trên mà không cần chạm vào nó, tức là, tôi không muốn thay đổi mã hiện tại của Module
nhưng để mở rộng nó để có thuộc tính mới C
.
Đây là một câu hỏi hay nhưng tôi đang bối rối bởi một phần của nó. Từ bit nhận xét của mã của bạn, nơi bạn chỉ ra nơi mà vấn đề của bạn là, có vẻ như bạn thực sự muốn mở rộng thuộc tính 'Utils' của' Module' không được định nghĩa trong mã của bạn. Vì vậy, bạn có muốn mở rộng 'Module' hoặc một đối tượng được gọi là' Utils' mà nên thuộc về 'Module'? – guypursey
Một câu hỏi khác: Nên 'Utils' hoặc' C' là riêng tư hoặc công khai? Họ có nên được đặc quyền (tức là, có quyền truy cập vào các biến riêng tư trong phạm vi đóng của bạn) không? – guypursey