对象javascript中的嵌套函数

时间:2014-05-07 12:59:21

标签: javascript function object nested object-literal

我正在尝试为我的对象添加一个额外的功能。我收到一个未定义的错误。我很迷惑。我希望能够输入这一行并让对象函数执行。

var Button = System.Windows.Forms.Control.TabControl();
Button.TabPages.Add();

这是我到目前为止的代码:

 System.Windows = {};
 System.Windows.Forms={};
 System.Windows.Forms.Control={
    TabControl: function () {
         this.Node;
         var self=this;
         this._ID="id test";
         TabPages= {
             //
             Add: function () {
                 Debug.WriteLine("ADD ID:"+self._ID);
             }
         }
         this.Focus = function () {
             this.Node.focus();
         }
         this.NodeCreate = function () {
             Debug.WriteLine("node created");
             var btn = document.createElement("button");
             btn.type = "button";
             btn.name = this._Name;
             this.Node = btn;
         }
         this.NodeCreate();
     }
 }

不知何故,我认为我混淆了范围或其他东西。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

这样运行没有错误,但没有将按钮物理添加到页面,因为您从未将其添加到文档中。我认为这是下一步。

    var System = {
            Windows : {
                Forms : {
                    Control : {
                        TabControl : function ()
                        {
                            var self=this;
                            this.Node = null;
                            this._ID="id test";
                            this.TabPages = {
                                //
                                Add: function () {
                                    console.log("ADD ID:"+self._ID);
                                }
                            };
                            this.Focus = function () {
                                 this.Node.focus();
                            };
                            this.NodeCreate = function () {
                                console.log("node created");
                                var btn = document.createElement("button");
                                btn.type = "button";
                                btn.name = this._Name;
                                self.Node = btn;
                                return self.Node;
                            }
                            self.NodeCreate();
                            return this;
                        }
                    }
                }
            }
        },
        Button = new System.Windows.Forms.Control.TabControl();

    Button.TabPages.Add();