Javascript 为什么我在控制台中看到Object.apply,而在对象上没有可以使用的情况?
为什么是Javascript 为什么我在控制台中看到Object.apply,而在对象上没有可以使用的情况?,javascript,object,google-chrome-devtools,apply,Javascript,Object,Google Chrome Devtools,Apply,为什么是对象。当没有相同的用例时,在控制台建议中应用 我们使用APPLY方法的唯一时间是在调用函数时 它甚至没有在报告中提到。 它在mdn中的函数原型中 如果我在使用对象时可以使用apply,请告诉我。object是一个函数,函数确实有一个apply方法 console.log(Object.constructor === Function); 对于调用apply的所有函数调用函数,换句话说,如果F是一个函数,那么F(x,y,z)与F.apply(这个[x,y,z])(第一个参数将是this
对象。当没有相同的用例时,在控制台建议中应用
我们使用APPLY方法的唯一时间是在调用函数时
它甚至没有在报告中提到。
它在mdn中的函数原型中
如果我在使用对象时可以使用apply,请告诉我。object
是一个函数,函数确实有一个apply
方法
console.log(Object.constructor === Function);
对于调用apply的所有函数调用函数,换句话说,如果F
是一个函数,那么F(x,y,z)
与F.apply(这个[x,y,z])
(第一个参数将是this
在函数内部时的值)
根据规范(第19节),Javascript中的对象
(即,最初绑定到全局对象中名称“Object”的对象)是一个构造函数,可以使用可选参数x
调用,并且:
- 如果
NewTarget
既不是未定义的
也不是激活的函数,则
返回OrdinaryCreateFromConstructor(NewTarget,“%ObjectPrototype%”)
。这意味着调用newobject()
就像编写({})
- 如果值为
null
,未定义
或未提供,则返回ObjectCreate(%ObjectPrototype%)
。这意味着调用对象(未定义)
或对象(空)
(无新建
)也类似于编写({})来创建新的标准对象
- 否则返回
对象(值)
。这意味着Object(x)
调用到Object的转换。例如,Object(42)
将为您提供一个装箱编号,但如果x
已经是一个对象,则Object(x)==x
var singletonArray = ['foo'];
var foo = Object.apply(null, singletonArray);
// foo is an Object
// (foo instanceof String) === true
在Javascript程序中调用Object.apply
并不是很频繁(你可能一辈子都是一个快乐高效的Javascript程序员,而不必接触这种东西)。Object
是一个函数,函数确实有一个apply
方法
console.log(Object.constructor === Function);
对于调用apply的所有函数调用函数,换句话说,如果F
是一个函数,那么F(x,y,z)
与F.apply(这个[x,y,z])
(第一个参数将是this
在函数内部时的值)
根据规范(第19节),Javascript中的对象
(即,最初绑定到全局对象中名称“Object”的对象)是一个构造函数,可以使用可选参数x
调用,并且:
- 如果
NewTarget
既不是未定义的
也不是激活的函数,则
返回OrdinaryCreateFromConstructor(NewTarget,“%ObjectPrototype%”)
。这意味着调用newobject()
就像编写({})
- 如果值为
null
,未定义
或未提供,则返回ObjectCreate(%ObjectPrototype%)
。这意味着调用对象(未定义)
或对象(空)
(无新建
)也类似于编写({})来创建新的标准对象
- 否则返回
对象(值)
。这意味着Object(x)
调用到Object的转换。例如,Object(42)
将为您提供一个装箱编号,但如果x
已经是一个对象,则Object(x)==x
var singletonArray = ['foo'];
var foo = Object.apply(null, singletonArray);
// foo is an Object
// (foo instanceof String) === true
在Javascript程序中调用Object.apply
的情况并不常见(你可能一辈子都是一个快乐高效的Javascript程序员,而不必接触这种东西)。如果你注意到,typeof(Object)是“function”->它是一个函数。
因此,它拥有Function.prototype中的所有方法(如调用
,应用
,绑定
,…)
一、 也没有看到任何需要使用Object.apply的情况 如果您注意到,typeof(Object)是“function”->它是一个函数。
因此,它拥有Function.prototype中的所有方法(如调用
,应用
,绑定
,…)
一、 也没有看到任何需要使用Object.apply的情况 对象
构造函数通常用于将原语转换为对象:
1 instanceof Number // false
但是
因此,Object.apply
的一个可能的(尽管是人为的)用例是将原语数组的第一个元素转换成一个对象
var singletonArray = ['foo'];
var foo = Object.apply(null, singletonArray);
// foo is an Object
// (foo instanceof String) === true
这可能不是很有用,但因为对象
是一个函数,具有.apply
方法不是例外,而是规则。对象
构造函数通常用于将原语转换为对象:
1 instanceof Number // false
但是
因此,Object.apply
的一个可能的(尽管是人为的)用例是将原语数组的第一个元素转换成一个对象
var singletonArray = ['foo'];
var foo = Object.apply(null, singletonArray);
// foo is an Object
// (foo instanceof String) === true
这可能不是很有用,但由于
对象
是一个函数,因此具有.apply
方法不是例外,而是规则。apply是函数的属性,对象
是函数。因此,应用程序是可用的。尝试Typeof(Object)
如果您注意到,Typeof(Object)
是“函数”。因此,它拥有Function.prototype中的所有方法(如call、apply)。我也没有看到任何需要使用对象的情况。apply
@Vothaison,请添加此注释作为答案。apply是函数的属性,对象
是函数。因此,应用程序是可用的。尝试Typeof(Object)
如果您注意到,Typeof(Object)
是“函数”。因此,它拥有Function.prototype中的所有方法(如call、apply)。我也没有看到任何需要使用对象的案例。apply
@Vothaison,请添加此注释作为答案。您能告诉我一个用例吗