解决方案 »

  1.   

    var 是全局变量。function调用,没有终止点。程序找不到回路,等于无效。所以出来的是你的第一个var。
      

  2.   

    //你应该知道预解析这个说法吧,一个函数在预解析时,就已经把里面的变量给固定了。
    //给你看一个最简单的例子,应该就能明白这点了。
    var length = 10;
    function fn1(){
    alert(length);
    }function fn2(){
    var length = 20;
    fn1();
    }
    fn2();//这里是弹出的length=10,
    //也就是说,函数内部的一些变量的值,是跟这个函数定义的位置有关
    //而和这个函数在哪里引用是无关的。再看下面这个例子function fn3(){
    var length = 30
    function fn1(){
    alert(length);
    }
    fn1();
    }
    fn3();//这里弹出的length=30,
    //因为这里的fn1函数,会首先访问到fn3函数内部定义的这个fn1函数。//当然,这里都是按最基础的方法说的,所以你就可以想象为什么在你的代码中,会出现那样的结果了。//首先一点就是,全局的函数定义,其中的this值是指向window对象的,而全局变量,也是保存到window对象上面的。比如上面定义的length=10,这里就可以使用window.length获取到这个只。alert(window.length);//而函数内部的this指向呢,看下面这个例子
    function fn4(){
    alert(this === window);
    }fn4();//true这里弹出值为true,也可以确认,this完全等于window对象的。//对比前面说的这些,再对比你代码中的写法,是否可以理解到我的意思呢?//当然,在JS中是可以改变一个函数内部的this指向的。所以,如果把你的代码进行下面的更改:
    var length = 10;
    function fn(){
        alert(this.length)
    }
    var obj = {
        length: 5,
        method: function(fn) {
            fn.call(this) ;
    //这个this,就代表了,fn内部的this,是按照此时的this进行处理的
    //而此时的this代表的是obj对象。
        }
    }
    obj.method(fn); //5值就对了吧。//当然,还可以进行下面的更改,var data = {
    length:15
    }var obj2 = {
    length:25,
    method:function(fn){
    fn.call(data);
    //这样写,那么fn函数内部的this就是代表了data对象,那么就可以获取到data对象中的length属性
    }
    }
    obj2.method(fn); //15//感觉说的也差不多了,就这样吧。
      

  3.   

    var length = 10;
    function fn(){
        alert(this.length); //this : window
    }
    var obj = {
        length: 5,
        method: function(fn) {
            fn() ;
        }
    }
    obj.method(window.fn); //10
      

  4.   

    CODE裡面不能加顏色…
    var length = 10;
    function fn(){
        alert(this.length); //this : window
    }
    var obj = {
        length: 5,
        method: function(fn) {
            fn() ;
        }
    }
    obj.method(window.fn); //10
      

  5.   

    当然可以加。但你的基本概念没对。基础太弱了。
    windows的颜色定义也要定义范围取值和属性取值。而不是简单的span就行了。//后面是注释,给你查找自己的程序设计的逻辑错误用的,不在程序里运行的。
      

  6.   


     // 我这里说的方言是: javascript
    var length = 10; // 定义“全世界/全地球/全屏幕/全中国/的距离长度=10”
    function fn(){ // 在全世界/全地球/全屏幕/全中国/的某个城市里,建立一个想要运行的规则 fn(规则的执行和操作方式为缺省规则或缺省操作){
        alert(this.length) // 显示(“我眼中的“全世界/全地球/全屏幕/全中国/的距离长度)
    } //某个城市我想要运行的规则fn结束(执行完毕)
    var obj = { // 定义“全部物体/全部物件/全部物理事物= { ”里面的所叙述的内容”“
        length: 5,// 距离/长度:设定为5
        method: function(fn) { // 使用的方法设定为:建立一个想要运行的规则(规则的执行和操作方式 为 (上面定义过的 fn 方式){ ”描述“
            fn() ;//  fn(规则的执行和操作方式为缺省规则或缺省操作)
        } // 描述 fn结束;
    } // 使用方法的设定建立运行结束
    ///(((((//缺少两层局部设定运行结束的层级)
    obj.method(fn); //10 // 全部物体/全部物件/全部物理事物. 处理方式(使用上面定义过的fn规则)===得到结果,(全世界/全地球/全屏幕/全中国/的距离长度=)10
     // 我这段js方言全部说完了。
      

  7.   

    // // 我这里说的方言是: javascript
    var length = 10; // 定义“全世界/全地球/全屏幕/全中国/的距离长度=10”
    function fn(){ // 在全世界/全地球/全屏幕/全中国/的某个城市里,建立一个想要运行的规则 fn(规则的执行和操作方式为缺省规则或缺省操作){
        alert(this.length) // 显示(“我眼中的“全世界/全地球/全屏幕/全中国/的距离长度)
    } //某个城市我想要运行的规则fn结束(执行完毕)
    var obj = { // 定义“全部物体/全部物件/全部物理事物= { ”里面的所叙述的内容”“
        length: 5,// 距离/长度:设定为5
        method: function(fn) { // 使用的方法设定为:建立一个想要运行的规则(规则的执行和操作方式 为 (上面定义过的 fn 方式){ ”描述“
            fn() ;//  fn(规则的执行和操作方式为缺省规则或缺省操作)
        } // ”描述 “fn结束;
    } // 使用方法的设定/建立 运行结束
    ///(((((//缺少两层局部设定运行结束的层级)==== 【楼主】:我找某你,某你现在在哪里?;【某你】:我不知道啊,你也没给我买返程的票啊;【楼主】:少废话,你在哪里?我不是让你去离我5的地方么?;【某你】:离你5的地方是什么地方?好大呀,我看不到你呀。我也不知道在具体什么位置。哦,我现在肯定在在全世界/全地球/全屏幕/全中国上。你不是给我圈过这个圈了么?
    obj.method(fn); //10 // 全部物体/全部物件/全部物理事物. 处理方式(使用上面定义过的fn规则)===得到结果(全世界/全地球/全屏幕/全中国/的距离长度=)10
    //  // 楼主我的这段js方言全部说完了。
      

  8.   

    当然可以加。但你的基本概念没对。基础太弱了。
    windows的颜色定义也要定义范围取值和属性取值。而不是简单的span就行了。//后面是注释,给你查找自己的程序设计的逻辑错误用的,不在程序里运行的。你可能沒懂我說什麼
    這是回文編輯器的問題…
      

  9.   

    一般都用记事本或写字板写,利用word里面自带的替换/查找功能检查。然后找个带编译功能的浏览器检查。最后实在找不到才进编辑器。
      

  10.   

    不是,是你的设置有问题。span不是取值或预加载的。你最好单独做css 调用。
      

  11.   

    不过就是个作用域的问题(或是说谁是属主的问题)var length = 10;
    function fn(){
        alert(this.length)
    }
    var obj = {
        length: 5,
        fn: fn,
        method: function(fn) {
            window.fn() ; //10 
            this.fn(); //5
        }
    }
    obj.method(fn); 
    谁然你可按约定省略 window,但不能被自己的行为而迷惑了
      

  12.   


    讲的十分清楚明白,尤其是
    function fn4(){
        alert(this === window);
    }
     
    fn4();//true这里弹出值为true,也可以确认,this完全等于window对象的。这里一下就扫清我的疑惑。非常感谢上面各位答主为我解惑。