我如何替換原型並使下面的代碼工作?換句話說,我想用相同的含義/邏輯編寫代碼而不使用原型。原型在Javascript中的替代方案
String.prototype.replaceAt = function(index, character) {
return this.substr(0, index) + character +
this.substr(index + character.length);
}
我如何替換原型並使下面的代碼工作?換句話說,我想用相同的含義/邏輯編寫代碼而不使用原型。原型在Javascript中的替代方案
String.prototype.replaceAt = function(index, character) {
return this.substr(0, index) + character +
this.substr(index + character.length);
}
創建它作爲一個自定義的工具對象的方法 -
var StringUtils = {};
StringUtils.replaceAt = function (str, index, character) {
return str.substr(0, index) + character +
str.substr(index + character.length);
}
,然後調用它像這樣 -
var str = "Hello";
StringUtils.replaceAt(str, 0, "A");
您只需將它定義爲一個函數,並使用打電話或申請原型方法
replaceAt = function(index, character) {
return this.substr(0, index) + character + this.substr(index+character.length);
}
如何使用?
var str = "Javascript is Awesome";
replaceAt.call(str, 0, "A");
// or
replaceAt.apply(str, [0, "A"]);
您會發現,在函數內強制使用'this'使用'apply' /'call'並不是一個好主意。這不直觀,因此可以創建難以發現的錯誤。 –
@SayemAhmed確實,我不確定提問者對「相同的意義/邏輯」有多極端。你的方法是我可能會這樣做。 – Ben
您可以簡單地將其定義爲對象的函數/方法。 –
Mr.Ahmed我試圖實現你的方法,但由於某種原因它不工作。是否有可能做一個單獨的功能,可以做同樣的工作。我唯一的問題是,我無法公開展示我的所有項目。是否可以私下與你溝通? – user2995331
你能告訴我你是如何定義和使用它?那裏可能有錯誤...... –