Я не могу понять, что здесь отсутствует.String Невозможно прочитать свойство «replace» of undefined
Я установил прототип строку в моем utils.js
String.prototype.toTitleCase =() => {
return this.replace(/\w\S*/g, (txt) => {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
};
И когда я проверить его от app.js
import * as utils from 'utils'
"This is a test".toTitleCase();
Я получаю сообщение об ошибке: TypeError: Cannot read property 'replace' of undefined
Я думаю, прототипирование более чистое, чем создание функции для этого. Вот почему я хочу понять. Спасибо!
Спасибо! Я открываю es6, и я думаю, что они используют функции стрелок. –
Функции стрелки великолепны, если вы хотите лексической привязки. Например, обычно приходится перепрыгивать через обручи, такие как 'var self = this;' для использования в цепочке обратного вызова или обещания. Там функции стрелки велики. Они не так хороши для определения прототипа, где вы хотите традиционную динамическую привязку 'this'. – dsh