对象javascript中的嵌套函数
我正在尝试向我的对象添加一个附加函数。我得到一个未定义的错误。我很困惑。我希望能够进入这一行并执行object函数对象javascript中的嵌套函数,javascript,function,object,nested,object-literal,Javascript,Function,Object,Nested,Object Literal,我正在尝试向我的对象添加一个附加函数。我得到一个未定义的错误。我很困惑。我希望能够进入这一行并执行object函数 var Button = System.Windows.Forms.Control.TabControl(); Button.TabPages.Add(); 这是我目前掌握的代码: System.Windows = {}; System.Windows.Forms={}; System.Windows.Forms.Control={ TabControl: func
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();
}
}
不知怎的,我觉得我把范围弄糊涂了。任何帮助都将不胜感激。谢谢。此操作运行时不会出错,但不会将按钮实际添加到页面中,因为您从未将其添加到文档中。我想这是下一步
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();
我修正了你说的,但是我仍然得到错误“uncaughttypeerror:undefined不是函数”。我认为这与我如何调用add函数或者add函数是如何创建的(嵌套和其他)有关。但我不知道如何修复它。“这是Javascript的一个设计问题,可能会在ES6中修复。”不,不是,因此不会修复。新的是arrow函数将使用与它们所包含的环境相同的
this
值,如果这是您的意思的话。我可以发誓他们将在内部函数中更正“this”,这样我们就不必在使用apply()和call()时一直提供正确的上下文.在何处创建系统对象?在我所能看到的范围内,必须有比您在初始示例中显示的更多的内容代码>,控件
不存在。它是TabControl
直接在Forms
之后。当我复制并粘贴到表单时,这是一个打字错误。修好了。问题仍然存在。在选项卡控件
中,此
指的是系统.窗口.窗体.控件
,您知道吗?要使它像您描述的那样工作,您必须返回这个从函数中选择code>,您还必须将TabPages
分配给this
,而不是像现在这样将其作为全局变量。然而,整个设置仍然让我感到困惑。