Я выполняю рефакторинг своего кода.У меня возникают проблемы с выбором того, как именно реализовать несколько функций утилит, которые у меня есть. В частности, , если определенные функции лучше использовать в моем личном пространстве имен или расширять js Objects напрямую.
Пример расширения собственных объектов JavaScript
(isэто правильный термин?).
String.prototype.prettyDate = function(){
return (this.substr(5,2) + '/' + this.substr(8) + '/' + this.substr(0,4));
}
var myString = "2010-12-27";
//logs 12/27/2010
console.log(myString.prettyDate);
Пример использования моего собственного пространства имен
var myNamespace = (function(){
var my = {};
my.prettyDate = function ( dateStr ){
return (dateStr.substr(5,2) + '/' + dateStr.substr(8) + '/' + dateStr.substr(0,4));
}
return my;
}());
var pretifiedDate = myNamespace.prettyDate('2010-12-27');
//logs 12/27/2010
console.log(pretifiedDate);
Вопросы для рассмотрения
- Когда утилита обоснованно вставляется в нативныйОбъект JavaScript?
- Как узнать, когда утилита лучше находиться в моем собственном пространстве имен?