В ES6 вы можете использовать свои пользовательские классы для расширения встроенных объектов javascript. Например, вы можете сделать Array
, Number
, String
, Date
объекты с использованием нестандартных методов.Расширять классы javascript и обертывать их в контейнерном объекте
Я экспериментировал с этим и пытался обернуть объекты в контейнерный объект с именем My
, просто следуя примеру here from MDN (Mozilla Developer Network). Но когда я определяю мой пользовательский класс Date
внутри объекта, как это:
var My = {};
class My.Date extends Date {
constructor() {
super();
}
getFormattedDate() {
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
return this.getDate() + "-" + months[this.getMonth()] + "-" + this.getFullYear();
}
}
я получаю следующее SyntaxError:
Uncaught SyntaxError: Unexpected token .
Here is a fiddle, который демонстрирует это.
Я держал пари, что какой-то способ обойти это, но я не уверен, как это сделать ...
Вы не можете использовать '.' в вашем имени класса. – Dieterg
Проверить [link] (http://www.ecma-international.org/ecma-262/5.1/#sec-7.6) официальную информацию об Именах Имена – jano