Qcccccccccccc 2016-10-07 06:25 采纳率: 100%
浏览 964
已采纳

javascript函数代码模块化大量问题

 var inter2 = function(){
        (function(){
            var _a,_b;
            var root = this;
            var _ = {
                add:function(){
                    return _a + _b;
                },
                sub:function(){
                    return _a - _b;
                },
                set:function(a,b){
                    _a = a;
                    _b = b;
                }
            }
            root._ = _;
        }.call(this));
        _.set(10,4);
        console.log(_.add());   //14
    }
  1. 问题1:不理解这个下滑线的命名规范?
  2. 问题2:不明白root._ = _;,是指把这个对象赋给这个root对象的属性吗?,root不是私有的吗?这么做有什么意义..
  3. 问题3:call(this),这个一般不是用在继承上面吗,在这里用是什么意义.
  4. 问题4:外边怎么就能用_这个变量了呢..
  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2016-10-07 06:48
    关注

    oo语言私有属性一般下划线开头。单独一个_没什么意义,就简写吧,和$一样
    root存储的实例化inter2后的实例对象,主要再this对象更改后可以使用root得到原来的this上下文,如某个类实例里面通过
    xxxDOM.onclick=function(){

    }

    注册时间是,处理函数里面this是dom对象,而不是类实例,通过存储this对象,然后通过变量名就可以使用实例对象,而不是通过this
    function xxx(){
    var me=this;
    xxxDOM.onclick=function(){
    //函数里面this是dom对象,me才是xxx的实例
    }
    }

    call用于改变执行函数的this执行,自己看这个:JavaScript apply与call的用法意义及区别

    不懂你怎么执行 var inter2,你的那个代码_.set要报错。。函数体外引用不到_

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!