Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问javascript对象中更高的命名空间_Javascript_Object - Fatal编程技术网

访问javascript对象中更高的命名空间

访问javascript对象中更高的命名空间,javascript,object,Javascript,Object,如何在没有硬编码的情况下从更高级别的名称空间调用方法?请参阅我想在另一个较低名称空间中调用较高级别名称空间的方法的注释。JavaScript没有名称空间。您正在使用对象列表,这很好,但无法访问父对象。您可以像这样使用闭包,尽管它有点冗长: var Higher = { hello: function(){ console.log('Hello from Higher'); } Lower: { hi: function(){ //how to c

如何在没有硬编码的情况下从更高级别的名称空间调用方法?请参阅我想在另一个较低名称空间中调用较高级别名称空间的方法的注释。

JavaScript没有名称空间。您正在使用对象列表,这很好,但无法访问父对象。您可以像这样使用闭包,尽管它有点冗长:

var Higher = {

  hello: function(){
    console.log('Hello from Higher');  
  }

  Lower: {
    hi: function(){

      //how to call the 'hello()' method from the Higher namespace?
      //without hardcoding it, as 'Higher.hello()'

      console.log('Hi from Lower');
    }
  }
}
var Higher = new (function(){
    this.hello = function(){
        console.log('Hello from higher');
    }

    this.Lower = new (function(higher){
        this.higher = higher;

        this.hi = function(){
            this.higher.hello();

            console.log('Hi from lower');
        }

        return this;
    })(this);

    return this;
})();

Higher.hello();
Higher.Lower.hi();