object.prototype.tostring.call原理
时间: 2023-08-08 07:09:45 浏览: 96
JavaScript中Object.prototype.toString方法的原理
`Object.prototype.toString.call()`是一种常用的方式来判断一个变量的类型。其原理是:每个对象都有一个`toString()`方法,用于返回一个表示该对象的字符串。当我们使用`Object.prototype.toString()`方法时,它会先找到该对象的`toString()`方法,然后调用该方法并返回结果。但是,如果我们直接调用某个对象的`toString()`方法,可能会得到与预期不符的结果,因为该对象的`toString()`方法可能被重写或者是无法输出有用的信息。
因此,为了解决这个问题,我们使用`Object.prototype.toString.call()`方法来获取一个变量的类型。它的原理是将`Object.prototype.toString()`方法的`this`指向要判断类型的变量,这样就可以返回该变量的类型字符串了。例如:
```javascript
Object.prototype.toString.call('') // "[object String]"
Object.prototype.toString.call(1) // "[object Number]"
Object.prototype.toString.call([]) // "[object Array]"
Object.prototype.toString.call({}) // "[object Object]"
```
这样就可以得到一个变量的准确类型,并且不受该变量的`toString()`方法是否被重写的影响。
阅读全文