Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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,我想问一个关于JavaScriptcall()函数的小问题。我已经开始深入学习JavaScript,但我无法理解它。为什么在这个示例中我会得到这样的结果: var args = Array.prototype.slice.call(arguments); 有了这个,我得到了一个错误 var args = Array.prototype.call(arguments); 这两个函数都存在于数组的\uuu proto\uu中,因为我知道数组是扩展函数。在本例中,返回trueArray.\uuuu

我想问一个关于JavaScript
call()
函数的小问题。我已经开始深入学习JavaScript,但我无法理解它。为什么在这个示例中我会得到这样的结果:

var args = Array.prototype.slice.call(arguments);
有了这个,我得到了一个错误

var args = Array.prototype.call(arguments);
这两个函数都存在于数组的
\uuu proto\uu
中,因为我知道数组是扩展函数。在本例中,返回true
Array.\uuuuu proto\uuuu==Function.prototype
类型:

typeof(Array.prototype.slice)
> "function"
(这是一个函数,您可以使用
call
-请参阅
function.prototype.call


(这不是一个函数,您不能使用
call
-“看不见”
Object.prototype.call

call
是函数的一种方法
Array.prototype.slice
是一个函数,但
Array.prototype
不是,因此它没有
调用
方法

Array.__proto__ === Function.prototype
呵呵。我认为您偶然发现了一些内部实现,实际上它并不是这样工作的。根据您在计算机科学/软件工程方面的实际经验,我很想建议您忽略这个特别的人工制品

Prototype是对象类的一个实例,它们没有
调用
方法(除非由用户或库定义)。所以,
which.prototype.call
应该按预期调用一个错误

另一种perculiar行为:

对象实例函数 //->对 对象的函数实例
//->没错

@Victoriano你不明白什么?只能调用函数和数组。原型不是函数。这其中哪一部分让你感到困惑,特别是。谢谢你的建议,我会考虑的。正如我现在谈论的原型链一样,这是这样的
数组->>函数->>对象
,还是我遗漏了一些东西?
Array.__proto__ === Function.prototype