JavaScript中的深层嵌套函数

Ser*_*rov 5 javascript

我找不到一个适当的例子来说明我对生活的热爱如何做到这一点,或者即使这是可能的.根据我对exmaples片段的拼凑理解,我提出了以下结构

         var t = function()
         {
             this.nestedOne = function()
             {
                 this.nest = function()
                 {
                     alert("here");
                 }
             }
         } 
         t.nestedOne.nest();
Run Code Online (Sandbox Code Playgroud)

然而,这显然不起作用(显然).如果有人能指出我正确的方向,我将不胜感激!

Esa*_*ija 3

这很简单:

var t = {
    nestedOne: {
        nest: function() {
            alert('here');
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

否则你的代码就没有意义。thisinside function 并不是指函数本身,而是指调用函数的对象上下文。而且您甚至没有在代码中调用函数。

如果我说obj.func(),那么this里面func将是obj那个电话。因此分配this.asd = true将分配true给该对象的"asd"属性。

如果你想做一个嵌套类,它看起来非常不同:

ClassA = (function() {
   function ClassA() {

   }

   ClassA.prototype.method1 = function() {

   };

   function ClassB() {

   }

   ClassB.prototype.method1 = function() {

   };

   return ClassA;
}())
Run Code Online (Sandbox Code Playgroud)

现在只有 ClassA 可以创建 ClassB 的实例。这应该实现与 java 中的嵌套类相同的目标。