为什么它返回的是“ undefined”而不是1

梅西

我是javascript新手,根据我对javascript的了解,以下问题应返回1,但返回的是“ undefined”。谁能告诉我为什么它不返回1?

 var foo = {
    bar: function() { return this.baz; },
    baz: 1
  };
  (function(){
    return typeof arguments[0]();
  })(foo.bar);
xReeQz

当您使用.运算符调用函数时,左侧的对象将.成为调用的上下文,即this但是,当您将函数作为参数传递给另一个函数时,会丢失上下文,因为您直接调用它。如果要保留上下文,可以使用bind

(function(){
    return typeof arguments[0]();
})(foo.bar.bind(foo));

而且,是的,您的函数实际上返回的类型baz,而不是值本身。typeof如果要查看,请删除1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么1 [“ foo”]返回undefined而不是错误?

为什么`search`返回-1而不是undefined或null

为什么我的代码返回对象的类型而不是它的值?

为什么函数返回 undefined 以及如何调试它?

FindIndex 结果为真,为什么它返回 -1

为什么 0 < undefined 返回 false 而不是 undefined?

Python二十一点程序代码问题。为什么它返回键“1”而不是“10”?

为什么它返回 204 而不是 403?自定义权限不起作用

PyQt5:为什么 self.sender() 返回基对象而不是派生对象发送它

为什么对Expression.TypeAs的求值返回的是基础具体类型的对象,而不是我请求它的接口?

为什么我们在编写装饰器时不调用函数而不是返回它?

C#:为什么我的字符串返回对象类型而不是它包含的值?

为什么函数在它应该是“n/a”时返回 undefined?

为什么函数默认返回`undefined`而不是`null`?

为什么函数返回 undefined 而不是给定的元素?

C++ 程序返回“0 0”而不是返回素数。为什么它没有从“prime”函数中得到正确的输出?

为什么函数 getSafestCountriesNames() 在我调用它时返回 promise{pending} 而当我使用 async/await 时它返回 undefined?

评估返回-1是否为TRUE?(为什么不是1)

为什么typeof 1 === 1返回false而不是boolean

为什么 useState 返回 undefined?

为什么当我输入命令“主机名”时,它返回的不是我的计算机名?

有人可以告诉我为什么当输入是z或Z时,它返回方括号而不是换行

为什么DISTINCT COUNT()返回9而不是1?

为什么此刻diff函数返回0而不是1

当 SQL 查询中的连接条件包含 `file.id = -1` 时,它返回所有行。为什么?

为什么findLastCompletelyVisibleItemPosition()返回-1?

为什么 DATEDIFF 返回 -1

为什么乘积[]返回1?

为什么〜0返回-1?