#javascript #ecmascript-6
#javascript #ecmascript-6
Вопрос:
У меня есть плагин javascript, написанный на ванильном javascript в объектной нотации
пример
start = {
config: {
a : 1
},
core: {
engine_part1:function() {
},
engine_part2: function() {
}
}
init: function(){
}
}
В этой объектной нотации функции могут быть объявлены внутри core
ie, engine_part1() и engine_part2()
Существуют ли какие-либо обходные пути для достижения того же с классами Javascript?
В классах Javascript класс имеет данные и функции, но я не мог писать функции внутри объекта, как core
в объектной нотации.
Заранее спасибо
Комментарии:
1. Ваша объектная нотация недопустима в
a=1
и}ninit:
2. Вы вообще не можете преобразовать один экземпляр в класс. Что не так с обозначением объектов?
3. Нотация объектов @Bergi очень крутая, но я пытаюсь преобразовать ее в нотацию класса ES6
4. @YongQuan Прости меня, чувак, я не заботился о синтаксисе при публикации. Почему бы вам не изучить основную идею, которую я задал, вместо этого вы изучаете синтаксические ошибки
5. @CaptainAdmin Я хочу сказать, что объекты и классы — это две принципиально разные вещи, и вы не можете использовать одно обозначение для другого.
Ответ №1:
Просто используйте class
инструкцию для объявления вашего класса, затем добавьте его свойства в constructor
методы static
and its () в теле класса.
class Start {
constructor() {
this.config = {
a: 1
};
this.core = {
engine_part1: () => (console.log('engine_part1')),
engine_part2: () => (console.log('engine_part2')),
}
}
init() {
console.log('init');
}
}
const start = new Start;
console.log(start.config);
start.core.engine_part1();
start.init();
Комментарии:
1. Большое вам спасибо! Высоко ценю ваше время, потраченное на ответ.
2. Но у меня много таких обозначений, поэтому я думаю, что это не очень хороший способ поместить все это в конструктор
3. Не уверен, что понял, что вы хотели сказать.