1

所以,我正在构建一个非常复杂的插件并遇到了障碍。(不过这是我学习的方式,所以障碍很好......)我的代码类似于以下内容:

文件 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

4

2 回答 2

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: ''
    }
};
于 2013-05-16T20:27:21.193 回答
-1

我认为问题在于self函数内部edit,因此无法在第二个文档的范围内访问。考虑让您的edit函数返回self它创建的对象,将其存储为变量,然后调用var.buttonDef.

于 2013-05-16T19:54:52.633 回答