相关疑难解决方法(0)

与JavaScript范围混淆

我对JavaScript范围有一些了解 - 该语言具有函数级范围,并且变量和函数声明被提升到其包含范围的顶部.但是,我无法弄清楚为什么以下两段代码记录不同的值:

这会将值1记录到控制台:

var a = 1;
function b() {
    a = 10;
    return;
    function a() {}
}
b();
console.log(a);
Run Code Online (Sandbox Code Playgroud)

神秘的是,这记录10:

var a = 1;
function b() {
    a = 10;
    return;        
}
b();
console.log(a);
Run Code Online (Sandbox Code Playgroud)

那么引擎盖下面发生了什么?

javascript scope

16
推荐指数
1
解决办法
469
查看次数

有没有办法在delphi中通过名称实例化一个类?

我想实例化一个类,但我只在字符串中有它的名字.有办法吗?

delphi delphi-7

11
推荐指数
1
解决办法
1万
查看次数

JavaScript本地范围:var vs. this

我似乎无法理解JavaScript变量的特定范围.与我发现的其他示例和问题不同,我对嵌套函数的范围感兴趣.

我在这个JSFiddle上建立了一个例子.相关部分如下:

function MyObject() {
    var self = this;

    var a = 1;
    this.b = 2;

    var innerMethod = function() {
        //1 and 2: direct reference
        logMessage("a = " + a); // a = 1
        //logMessage("b = " + b); // Error: b is not defined

        //3 and 4: using this
        logMessage("this.a = " + this.a); // this.a = undefined
        logMessage("this.b = " + this.b); // this.b = undefined

        //5 and 6: using self
        logMessage("self.a = " + …
Run Code Online (Sandbox Code Playgroud)

javascript scope scoping

9
推荐指数
1
解决办法
2498
查看次数

Javascript对象从自身调用函数

我一直在阅读使用HTML5和JavaScript的游戏设计,它向我介绍了对象.因此,在阅读完本书并开展项目后,我决定采用这些新发现的知识并将对象集成到我自己的项目中.所以这是我的问题可以或应该对象调用自己的函数?例如:

var someObject = {
    start: function() {
        check();
    },
    check: function() {
        console.log("Check!");
    }
};

someObject.start();
Run Code Online (Sandbox Code Playgroud)

这本书确实展示了一个带有计时器的例子:

var timer = {
    start: function() {
        var self = this;
        window.setInterval(function(){self.tick();}, 1000);
    },
    tick: function() {
        console.log('tick!');
    }
};
Run Code Online (Sandbox Code Playgroud)

在带有timer对象的示例中,它为self调用内部函数,因此这意味着我应该使用self来调用内部函数,或者这是使用对象执行此操作的正确方法吗?还是最佳实践?提前致谢.

var someObject = {
    start: function() {
        var self = this;
        self.check();
    },
    check: function() {
        console.log("Check!");
    }
};

someObject.start();
Run Code Online (Sandbox Code Playgroud)

javascript prototype function object

9
推荐指数
1
解决办法
1万
查看次数

变量环境与词汇环境

我需要了解JavaScript中变量环境与词法环境之间的区别.实际上我会查看stackoverflow和doc中提供的一些注释,但是很难理解.如果你因为我的英语知识不好而向我解释,我会很高兴的.

javascript

9
推荐指数
2
解决办法
4175
查看次数

朋友混淆

$ 11.4/5 - "[...]类中定义的友元函数位于定义它的类的(词法)范围内[...]

这句话是什么意思?

struct A{
   typedef int MYINT;
   void f2(){f();}                    // Error, 'f' is undefined
   friend void f(){MYINT mi = 0;}     // Why does this work, shouldn' it be A::MYINT?
   void f1(){f();}                    // Error, 'f' is undefined
};

int main(){}
Run Code Online (Sandbox Code Playgroud)
  1. 令人困惑的是,从'A :: f1'调用'f'是可以理解的.然而,当一个朋友处于好友阶层的"词汇"范围时,为什么从'A :: f2'调用'f'是不正确的?"词汇"范围意味着什么?

  2. 在同一类型中,为什么在"f"中使用'MYINT'可以?不应该是'A :: MYINT'吗?

如果我将'A*'类型的参数添加到'f',那么'f1'和'f2'都能够因为ADL而找到'f'.这是可以理解的.

c++ friend

6
推荐指数
1
解决办法
181
查看次数

javascript函数在jquery $(document).ready块中不起作用

我试图JavaScriptonclick触发器调用函数.

HTML 部分:

<div class="my_radio">
    <input type="radio" name="my_radio" value="1" onclick="my_func()"/>  first button
</div><!-- end of class my_radio -->
Run Code Online (Sandbox Code Playgroud)

JavaScript代码

<script type="text/javascript">
    $(document).ready(function(){
        function  my_func(){
            alert("this is an alert");
        }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

这是行不通的.

但是,如果我将该JavaScript功能 保留在$(document).ready()代码之外,它就可以工作.以下是相关的代码段:

<script type="text/javascript">
    $(document).ready(function(){
        function  my_func111(){
            alert("this is an alert");
        }
    });

    function  my_func(){
        alert("this is an alert");
    }
</script>
Run Code Online (Sandbox Code Playgroud)

1)为什么第一个JavaScript代码片段不起作用?

2)如何让第一个JavaScript代码段工作?

编辑:

因此我知道,$(document).ready()当网页完全加载时执行.那么my_func()如果我my_func()在外面写,如何防止在完整页面加载之前或之后激活$(document).ready()

javascript jquery

4
推荐指数
2
解决办法
2万
查看次数

类型符号与Scala反射镜像之间的关系

Scala反射非常复杂.它包含类型符号和镜像.你能告诉我他们之间的关系吗?

reflection types symbols scala mirror

4
推荐指数
1
解决办法
502
查看次数

使用if语句调用函数

我希望能够在if语句中调用函数.

例如:

var photo = "yes";

if (photo=="yes") {

    capturePhoto();

}

else {
  //do nothing
}; 
Run Code Online (Sandbox Code Playgroud)

这没什么.该函数在if语句之上明确定义.

编辑:哇,下到地狱!capturePhoto(); 只是一个示例函数,在这种情况下真的不需要任何解释?

javascript jquery

3
推荐指数
1
解决办法
6万
查看次数

为什么深层嵌套函数可以访问顶级变量?

我一直在做一些javascript阅读,并且我已经收集到一个闭包只能访问闭包"包装"它,或者,你可能会说它是直接的父.现在我已经玩了一点,我在这个jsfiddle中看到即使是深层嵌套函数也可以访问定义的vars.

任何人都可以解释一下吗?或者解释一下我完全错了什么?

http://jsfiddle.net/tPQ4s/
function runNums() {
    this.topVar = 'blah';
    return function(){
        (function() {                    
            (function() {
                console.log(topVar);
            })();
        })();
    }
}

var someFunc = runNums();
someFunc(); 
Run Code Online (Sandbox Code Playgroud)

javascript closures

3
推荐指数
2
解决办法
646
查看次数