Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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,当我在控制台中运行a.\uuuuu proto\uuuu时,它返回 var a = function() { }; //Just a function 因此,如果在javascript中创建的每个函数的原型都是类似于上述的函数,那么像call()、apply()和bind()这样的方法到底定义在哪里?这些函数确实存在于a.。\uuuuu proto\uuuu(或链中的其他部分)-您看到的问题更多的是它在控制台中的表示方式。例如,如果您只是在控制台中执行a,您也会看到空函数字符串,但没有\uuu

当我在控制台中运行
a.\uuuuu proto\uuuu
时,它返回

var a = function() { }; //Just a function

因此,如果在javascript中创建的每个函数的原型都是类似于上述的函数,那么像call()、apply()和bind()这样的方法到底定义在哪里?

这些函数确实存在于
a.。\uuuuu proto\uuuu
(或链中的其他部分)-您看到的问题更多的是它在控制台中的表示方式。例如,如果您只是在控制台中执行
a
,您也会看到空函数字符串,但没有
\uuuuu proto\uuuuuu
属性,您已经知道它在那里

正如@squint所指出的,如果您使用
console.dir
其他属性将显示:


函数确实存在于
a.\uuuu proto\uuuuuu
(或链中的更深处)-您看到的问题更多的是它在控制台中的表示方式。例如,如果您只是在控制台中执行
a
,您也会看到空函数字符串,但没有
\uuuuu proto\uuuuuu
属性,您已经知道它在那里

正如@squint所指出的,如果您使用
console.dir
其他属性将显示:

如果javascript中创建的每个函数的原型都是上述函数,那么像call()、apply()和bind()这样的方法到底定义在哪里

就在那个函数/对象上<代码>函数。原型是一个函数,但它与其他函数不同。它的定义是:

八,。让noSteps为空的算法步骤序列。
9让funcProto成为(realmRec、noSteps、objProto)。
10将内部函数。[[%FunctionPrototype%]]设置为funcProto

它是一个内置函数,但是它自己的原型在这里设置为默认对象原型(
objProto
),而不是它自己(不能有循环原型链)

该算法中的第13步接着说,所有内在值都需要根据规范中的某些人和某些部分进行递归初始化:

使用中列出的尚未在上面处理的值设置Intrinsic字段。字段名称是表的第一列中列出的名称。每个字段的值都是一个新的对象值,完全递归地填充了第18-26条中每个对象规范定义的属性值。[……]

该表包括:

%FunctionPrototype%
|
Function.prototype
|
%Function%

并描述该对象的所有属性,包括您提到的属性

如果javascript中创建的每个函数的原型都是上述函数,那么像call()、apply()和bind()这样的方法到底定义在哪里

就在那个函数/对象上<代码>函数。原型是一个函数,但它与其他函数不同。它的定义是:

八,。让noSteps为空的算法步骤序列。
9让funcProto成为(realmRec、noSteps、objProto)。
10将内部函数。[[%FunctionPrototype%]]设置为funcProto

它是一个内置函数,但是它自己的原型在这里设置为默认对象原型(
objProto
),而不是它自己(不能有循环原型链)

该算法中的第13步接着说,所有内在值都需要根据规范中的某些人和某些部分进行递归初始化:

使用中列出的尚未在上面处理的值设置Intrinsic字段。字段名称是表的第一列中列出的名称。每个字段的值都是一个新的对象值,完全递归地填充了第18-26条中每个对象规范定义的属性值。[……]

该表包括:

%FunctionPrototype%
|
Function.prototype
|
%Function%


并描述该对象的所有属性,包括您提到的属性。

函数上
prototypea.constructor.prototype.apply可能在该函数对象上。这更像是控制台日志中如何表示
\uuuuuuuuuuuu
的问题<代码>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\uuuuuuuuuuuuuuu
本身具有其他属性,包括
调用
应用
控制台.dir(a.。\uuuuuuuuuu proto)
function () {}