所以,我正在构建一个非常复杂的插件并陷入困境。 (这是我学习的方式,所以障碍很好......)我的代码看起来类似于以下内容:
文件1
if( !window.TextEdit ){
var TextEdit = {"version": "1.0"};
}
TextEdit.edit = function(context, options) {
var self = this;
self.context = context;
self.buttonDef = {
bold: {
class: 'bold',
command: 'bold',
icon: 'bold',
type: 'checkbox',
label: ''
},
italic: {
class: 'italic',
command: 'italic',
icon: 'italic',
type: 'checkbox',
label: ''
},
underline: {
class: 'underline',
command: 'underline',
icon: 'underline',
type: 'checkbox',
label: ''
}
}
self.init();
}
文件2
if( !window.TextEdit.imageload ){
TextEdit.imageload = {"version": "1.0"};
}
TextEdit.imageload = function() {
var self = this;
self.editor = TextEdit;
self.init();
}
TextEdit.imageload.prototype = {
init: function() {
var self = this;
console.log(self.buttonDef);
$('.tdt-btn-addimage').click(function() {
});
},
create: function() {
},
destroy: function() {
}
}
new TextEdit.imageload();
因此,使用Document 2我想访问Document 1中的变量self.buttonDef。我能够很好地访问Document 1中的函数,但不能访问变量。
我正在寻找的是如何buttonDef
TextEdit
属性。
答案 0 :(得分:1)
您可以使用以下代码使buttonDef成为TextEdit的属性。
TextEdit.buttonDef = {
bold: {
class: 'bold',
command: 'bold',
icon: 'bold',
type: 'checkbox',
label: ''
},
italic: {
class: 'italic',
command: 'italic',
icon: 'italic',
type: 'checkbox',
label: ''
},
underline: {
class: 'underline',
command: 'underline',
icon: 'underline',
type: 'checkbox',
label: ''
}
};
答案 1 :(得分:-1)
我认为问题是self
位于函数edit
内部,因此无法在第二个文档的范围内访问。考虑让您的edit
函数返回它创建的对象self
,将其存储为变量,然后调用var.buttonDef
。