Javascript-如何将函数添加或扩展到现有函数
我正在使用JS和一个库来生成一个名为的Gui。此库是另一个名为的库的包装器 好的,这个p5.js库还可以,但它缺乏功能。我想向它添加一些函数,因为quicksettings支持它们,但p5.gui不支持它们 例如,我希望能够在gui菜单中添加保存或重置按钮。 我已经将它硬编码到p5.gui库中,它非常棒。代码如下:Javascript-如何将函数添加或扩展到现有函数,javascript,function,p5.js,Javascript,Function,P5.js,我正在使用JS和一个库来生成一个名为的Gui。此库是另一个名为的库的包装器 好的,这个p5.js库还可以,但它缺乏功能。我想向它添加一些函数,因为quicksettings支持它们,但p5.gui不支持它们 例如,我希望能够在gui菜单中添加保存或重置按钮。 我已经将它硬编码到p5.gui库中,它非常棒。代码如下: this.addButton = function(name, callback) { qs.addButton( name, callback ); }; 但是,
this.addButton = function(name, callback) {
qs.addButton( name, callback );
};
但是,如果一段时间过去了,我忘记了将其硬编码到库中,库得到了更新,该怎么办。我会丢失我的密码
这是,在参考中,我把代码放在这里:
(function() {
function QSGui(label, parent, sketch) {
// my code
this.addButton = function(name, callback) {
qs.addButton( name, callback );
};
// end my code
}
})();
问题
所以,我的问题是,是否有一种方法可以向它添加代码或从我自己的文件/脚本扩展到它。
我对JS还不够熟悉,无法做到这一点。我发现我不能直接从另一个文件调用
QSGui()
。查看p5.gui库的源代码,我发现这行代码:
//代理quicksettings的所有函数
这个.prototype=qs;
这意味着您不必定义自己的addButton()
函数。如果QuickSettings
类有一个addButton()
函数,那么您应该能够在QSGui
的实例上直接调用addButton()
。通过调用createGui()
函数,可以获得QSGui
的实例
大概是这样的:
var gui=createGui(“我最棒的gui”);
添加按钮(…);
我确实尝试过这一点,但我在控制台中得到了这一点:TypeError:gui.addButton不是一个函数
@Tim您确定使用的是正确版本的基础快速设置
库吗?其他功能是否正常工作?正如您在浏览器控制台(而不是codepen控制台)中看到的,它返回以下TypeError:gui.addButton不是一个函数
,但我必须说,现在我更多地使用它来学习。因为我想我可能会从p5.gui
切换到dat.gui
,这样看起来更好看。另外,我不会像使用p5.gui
@Tim那样痛苦,我相信你会遇到错误。我只是想知道它是否与QuickSettings
库的版本控制有关?在QuickSettings
参考中的何处可以看到addButton()
函数?其他功能是否正常工作?