![](/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.