Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 - Fatal编程技术网

Javascript-函数调用不会进入函数体

Javascript-函数调用不会进入函数体,javascript,Javascript,我有一个充当构造函数的函数,当调用该函数时,它可以到达调试器中的函数定义,但永远不会到达函数体。是否有一个共同的原因,这可能会发生,我忽略了?示例代码如下: myconstructor.js function MyConstructor(optionalParam) { //this breakpoint gets hit var newobj = {}; //breakpoint never hit //code to check for null parameter

我有一个充当构造函数的函数,当调用该函数时,它可以到达调试器中的函数定义,但永远不会到达函数体。是否有一个共同的原因,这可能会发生,我忽略了?示例代码如下:

myconstructor.js

function MyConstructor(optionalParam) { //this breakpoint gets hit
    var newobj = {}; //breakpoint never hit
    //code to check for null parameter
    //other code
};
main.js

var myConstructor = new MyConstructor();
一定有什么我忽略了,但我看不出那是什么。firefox/firebug和VS都不报告错误或警告


谢谢

函数是否不必位于类内才能实例化它?

函数是否不必位于类内才能实例化它?

语法看起来正确,并且可以内联工作。你确定你关闭了所有的脚本标签吗

<script src="myconstructor.js" type="text/javascript">

<script type="text/javascript">
  var myConstructor = new MyConstructor();
</script>

var myConstructor=新的myConstructor();

不行。如果不是这样的话,我就什么都没有了。

您的语法看起来正确,并且可以内联工作。你确定你关闭了所有的脚本标签吗

<script src="myconstructor.js" type="text/javascript">

<script type="text/javascript">
  var myConstructor = new MyConstructor();
</script>

var myConstructor=新的myConstructor();


不行。如果不是这样的话,我完全没有得到任何信息。

不确定,因为我不使用javascript,但是您是否需要将“optionalParam”发送给构造函数,所以使用“var myConstructor=new myConstructor(optionalParam);”。MyConstructor是否返回任何内容?如果没有返回值,变量myConstructor应该是未定义的。您是否尝试将
console.log()
放入函数体中?该代码看起来没有问题。这是调试器本身的问题吗?Vivin Paliath关于
console.log()
(甚至是老式的
alert()
)的建议可能很有启发性。因为MyConstructor()是使用'new'关键字调用的,所以它返回一个新对象,其中包含函数体中使用'this'声明的所有内容。已在正文中尝试console.log()。它似乎没有运行。谢谢你的想法。我不确定,因为我不使用javascript,但你是否需要将“optionalParam”发送给构造函数,所以使用“var myConstructor=new myConstructor(optionalParam);”。MyConstructor是否返回任何内容?如果没有返回值,变量myConstructor应该是未定义的。您是否尝试将
console.log()
放入函数体中?该代码看起来没有问题。这是调试器本身的问题吗?Vivin Paliath关于
console.log()
(甚至是老式的
alert()
)的建议可能很有启发性。因为MyConstructor()是使用'new'关键字调用的,所以它返回一个新对象,其中包含函数体中使用'this'声明的所有内容。已在正文中尝试console.log()。它似乎没有运行。感谢您的想法。Javascript没有classesNope,它是全局声明的(或者更准确地说,它是在“窗口”中声明的),因此调用可以很容易地是var myConstructor=new window.myConstructor()。作为一个理智的检查,我确实有其他的“类”以同样的方式定义(这是有效的。)嗯,我想你是对的,但我发现:这就是我的意思(虽然这可能不是问题的原因),你有没有试过发出警报(“测试”);在那里吗?只是为了检查到目前为止一切正常吗?Javascript没有classesNope,它是全局声明的(或者更准确地说,它是在“窗口”中声明的),因此调用可以很容易地是var myConstructor=new window.myConstructor()。作为一个理智的检查,我确实有其他的“类”以同样的方式定义(这是有效的。)嗯,我想你是对的,但我发现:这就是我的意思(虽然这可能不是问题的原因),你有没有试过发出警报(“测试”);在那里吗?只是为了检查到那一点的一切是否正常?标记已关闭,但由于是一个与脚本标记相关的问题,因此没有按顺序(愚蠢的错误)标记为答案。谢谢。标记已关闭,但由于是与脚本标记相关的问题,因此无法按顺序(愚蠢的错误)标记为答案。谢谢