У меня есть базовый объект ProfileDialog
, который я распространяю с Object.assign()
.Object.assign() глубокий объект
var ProfileDialog = function (containerObj) {
this.init = function() {
this.container = containerObj;
};
this.render = function() {
let content = document.createElement('div');
content.innerText = 'Dialog here';
this.container.appendChild(content);
};
this.init();
this.render();
};
Mixin:
var DialogMixin = function() {
return {
open: function() {
this.container.style.display = 'block';
},
close: function() {
this.container.style.display = 'none';
}
}
};
Теперь я выполнить задание:
Object.assign (ProfileDialog.prototype, DialogMixin());
Это работает просто отлично, this
контекст разрешает штраф в open
и close
методов.
Но, когда я поставил подмешать в более глубокой структуре, помещая его в actions
собственности:
var DialogMixin = function() {
return {
actions: {
open: function() {
this.container.style.display = 'block';
},
close: function() {
this.container.style.display = 'none';
}
}
}
};
контекст становится объектом actions
так кодовыми перерывов.
Как правильно расширить объект новыми методами, когда они будут помещены в глубокую структуру?
Это неправильный синтаксис JavaScript. –
Правеен, что с ним? –
Нет ... Я не говорил о 'let' или' var'. Вы используете 'babel.js'? –