我有一个基础对象ProfileDialog
,我使用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();
};
密新:
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
方法中解析得很好。
但是,当我将mixin放在更深层的结构中时,将它放在actions
属性中:
var DialogMixin = function () {
return {
actions: {
open: function () {
this.container.style.display = 'block';
},
close: function () {
this.container.style.display = 'none';
}
}
}
};
上下文变为actions
对象,因此代码会中断。
如果将对象放入深层结构中,如何使用新方法正确扩展对象?
答案 0 :(得分:0)