gpt4 book ai didi

javascript - 向现有模块化模式对象添加新方法

转载 作者:搜寻专家 更新时间:2023-11-01 04:32:44 25 4
gpt4 key购买 nike

我有以下带有两种方法的模块,A()B():

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
}

} ());

假设我想添加一个新方法 C()...

function C(){
console.log("C");
};

...到上面的模块而不触及它,即,我不想更改 Module 的现有代码,而是将其扩展为具有新的 C属性(property)。

最佳答案

您需要在模块定义之后执行以下操作:

Module.Utils = Module.Utils || {};
Module.Utils.C = function(){
console.log("C");
};

第一行检查是否已经定义了 Module.Utils,如果没有定义它。下一部分然后分配函数 C。

如果您尝试只执行 Module.Utils.C = function(){ console.log("C"); }; 然后你会得到关于 Module.Utils 未定义的错误。

我在这里创建了一个 fiddle 来展示它的工作:http://jsfiddle.net/u5R4E/

关于javascript - 向现有模块化模式对象添加新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15381614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com