我正在尝试自定义现有的JS库而不修改原始的JS代码.这段代码加载了一些我有权访问的外部JS文件,我想要做的是更改原始文件中包含的一个函数,而不复制并将整个文件粘贴到第二个JS文件中.
例如,关闭限制JS可能有这样的功能:
var someFunction = function(){
alert("done");
}
Run Code Online (Sandbox Code Playgroud)
我希望能够以某种方式将一些JS代码附加或添加到该函数中.原因主要是在原始的不可触摸的JS中,函数非常庞大,如果JS得到更新,我覆盖它的函数将会过时.
我不完全确定这是可能的,但我想我会检查.
我有一个将config对象作为参数的函数.在函数内,我也有default对象.这些对象中的每一个都包含基本上用作函数内其余代码的设置的属性.为了防止必须指定config对象中的所有设置,我使用jQuery的extend方法来填充一个新对象,如果未在对象中指定,则使用对象中的settings任何默认值:defaultconfig
var config = {key1: value1};
var default = {key1: default1, key2: default2, key 3: default 3};
var settings = $.extend(default, config);
//resulting properties of settings:
settings = {key1: value1, key2: default2, key 3: default 3};
Run Code Online (Sandbox Code Playgroud)
这很好用,但我想在不需要jQuery的情况下重现这个功能.是否有一个同样优雅(或接近)的方法用普通的'javascript做到这一点?
这个问题与" 如何动态合并两个JavaScript对象的属性? "问题不重复.虽然这个问题只是想创建一个包含来自两个独立对象的所有键和值的对象 - 我特别想要解决如何在两个对象共享一些但不是所有键以及哪个对象将优先的情况下执行此操作(如果存在重复键,则生成的对象的默认值.更具体地说,我想解决使用jQuery的方法来实现这一点,并找到一种没有jQuery的替代方法.虽然这两个问题的许多答案都重叠,但这并不意味着问题本身是相同的.