![](/img/trans.png)
[英]Guide for extending the Javascript language on VsCode for a 3rd party API
[英]JavaScript and extending 3rd party API
我正在更新有关JavaScript的知识,并且坚持了一项课程任务。 我有API返回字符串...
API.workerName = function (worker) {
return worker.firstName + ' ' + worker.lastName;
};
任务是给返回的字符串加上前缀,而不更改API,而是对其进行扩展。 我还必须避免复制和粘贴代码,因为第三方代码可以更改。 我应该重新使用它。 我所做的是在加载API后更改此功能...
API.workerName = function (worker) {
return '(' + worker.position + ') ' + worker.firstName + ' ' + worker.lastName;
};
...但是我认为我做错了。
要扩展该方法,您应该保存旧定义并从扩展名中调用它:
API.oldWorkerName = API.workerName;
API.workerName = function(worker) {
return '(' + worker.position + ')' + API.oldWorkerName(worker);
};
也许这是您的课程正在寻找的内容:
API.workerPositionAndName = function(worker) {
return '(' + worker.position + ')' + API.workerName(worker);
};
保存旧定义并使其对其他任何人都不可用的另一种好方法是使用IIFE创建闭合来进行以下操作:
API.workerName = (function() {
var old = API.workerName; // this old version is only available inside your new function
return function(worker) {
return '(' + worker.position + ')' + old(worker);
}
})();
这是一个例子:
API = { workerName: function (worker) { return worker.firstName + ' ' + worker.lastName; } }; API.workerName = (function () { var old = API.workerName; return function (worker) { return '(' + worker.position + ')' + old(worker); }; })(); alert(API.workerName({firstName: "Joe", lastName: "Blogs", position: "Lackey" }));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.