调用()和应用()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 () {}