javascript - Object(this) 是做什么的?

标签 javascript object constructor shim

我在几个 MDN 数组方法垫片中注意到,例如 this one在第 7 行,他们使用以下语法:

var t = Object(this);

this 是一个数组。它不仅没有在我的验证器中提示,我也不知道它做了什么。

任何人都可以开灯吗?

最佳答案

据我所知,它的唯一用途是将字符串文字传递给 Array.prototype.indexOf。如果你删除它并传递一个字符串,你会得到一个错误:

TypeError: Cannot use 'in' operator to search for '0' in string

但是,通过将字符串文字转换为 String 的实例,您最终会得到一个对象,该对象对字符串的每个字符都有一个数字属性,并且由于它是一个普通对象,您可以使用in 运算符,该方法将返回字符串中字符的索引:

Array.prototype.indexOf.call("hello", "e"); // Returns 1

这是 an example with the cast to Object ,这里是 an example without it .


在更一般的情况下,将任何东西传递给 Object 构造函数都会尝试将该东西转换为对象。因此,您可以向它传递一个字符串文字并返回一个 String 的实例,或者向它传递一个数字文字并获取一个 Number 的实例。

关于javascript - Object(this) 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13154442/

相关文章:

javascript - 将属性对象转换为它的值

java - 扩展对象隐式

android - 在 Activity 的 init block 中使用 'this' 作为上下文?

javascript - 如何在 vuejs 中使用 D3 缩放图表?

c# - 在 C# 中的数据类型之间进行转换

Java:从字符串初始化一个类

Java:如何创建一个数组并用构造函数中的对象填充它?

javascript - 动态等高响应图像库

javascript - Angular 翻译即时方法不起作用

javascript - ReactJs:从字体更改方法调用时 fontSize 不会更改