下面是例1好,还是例2好,还是命名空间里根本不允许有这样的调用,需要重新设计,把f2的结果设计成f1的参数的方式?
例1:
var M={
   f1:function(){
      var a=this.f2()
      return a
   },
   f2:function(){
   }
}例2:
var M={
   f1:function(){
      var a=M.f2();
      return a
   },
   f2:function(){
   }
}

解决方案 »

  1.   

    呵呵 KK3K2005 我知道你的意思,知道要是自己设计代码解耦,去掉依赖 肯定例1和例2好
    我想问问在有没有专门的规定,禁止在js的大型接口程序中的命名空间下的函数中调用其它函数?
      

  2.   

    你到底知不知this是什么东东。  this到什么地方去。
    命名空间 非要{}做吗?  函数就不能做吗?
      

  3.   

    对象已确定(instance),那还有this.  
    {}is instance of Object. 
    Object = function(){XX}.
    this是给那种没确定对象的人用的。
      

  4.   


    所以说 一般很多程序都有类似 includ import use 之类的关键字 指定当前代码要依赖的外部代码
    根据指定的依赖关系 会进行加载前的预处理
    js没有直接提供  但是精神是不变的 
    所以有个 JS的AMD规范
    requirejs 还有 node.js都是依据这个规范实现的有时间看下这个 AMD规范
      

  5.   

    两个例子都可以正常执行,所以单纯的讲两个例子 哪个好一些,个人感觉意义不大。
    写法的好坏取决于具体的执行环境。如果只就调用对象其他属性或方法而言:
    例1中的this会根据具体的执行环境和调用对象而有所变化。
    例2中只要保证调用该方法的是M,就可以正确调用M的其他方法或属性,相对例1而言更稳定一些。