Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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 jQuery错误-未捕获的TypeError:对象不是函数_Javascript_Jquery - Fatal编程技术网

Javascript jQuery错误-未捕获的TypeError:对象不是函数

Javascript jQuery错误-未捕获的TypeError:对象不是函数,javascript,jquery,Javascript,Jquery,我试过调试,但还没有成功! 这项工作: function slider(direction){ this.direction = direction; } slider.prototype.move = function(){ console.log('moving'); }; var slider1 = new slider('backward'); console.log(slider1.direction); var slider2 = new slider('forward');

我试过调试,但还没有成功! 这项工作:

function slider(direction){
this.direction = direction;
}

slider.prototype.move = function(){
console.log('moving');
};

var slider1 = new slider('backward');
console.log(slider1.direction);

var slider2 = new slider('forward');
console.log(slider2.direction);
这不起作用:

var slider = new slider('backward');
console.log(slider.direction);

var slider2 = new slider('forward');
console.log(slider2.direction);

我知道这可能与分号有关,我搜索了其他一些关于分号的文章,但找不到我的问题的答案

很难从代码中了解问题,但我认为这一行可能会导致问题

var slider = new slider('backward');
您同时将
滑块
声明为函数和变量。如果我的猜测是正确的话。这是因为它是运行时第一个代码和第二个代码之间的唯一区别

var slider = new slider('backward');
console.log(slider.direction);
现在有两个变量称为
slider
——一个是函数,另一个是函数生成的对象的实例。当您要求第二个滑块生成:

var slider2 = new slider('forward');
console.log(slider2.direction);
实际上,您要求它使用对象的实例作为变量。。。这让人觉得很难解释,因为他们有相同的名字

您在第二个示例中所做的导致其失败的操作与在第一个示例中尝试执行的操作相同:

var slider2 = new slider1('forward');
console.log(slider2.direction);
因为函数名与包含其实例的变量相同


如果没有对这一点进行详细的解释(这不会让我感到惊讶),请让我知道,我会尽量让它更有意义。

第二段代码中是否定义了
slider
函数?正如lonesomeday所言,这可能是一个范围问题。如果我猜的话,我敢打赌第一位代码隐藏在一个闭包中,比如
$(document).ready(function(){/*closure*/})是。我只是不想再复制整件事。我不知道为什么会发生这个错误。。尝试在Chrome中调试,但没有给我任何反馈?啊,是的,这就是问题所在。这实际上是说
newundefined('backward')
。很好的地方。嗯,我明白了,但是有了这个功能:var slider=newslider('backward');控制台.日志(滑块.方向);是的,先生。我现在明白了!谢谢大家的帮助!