.call 是JavaScript 中 Function.prototype 上的一个方法,它允许一个对象使用另一个对象的方法。call 方法会调用一个函数,并将其 this 关键字设置为提供的对象。如果未提供对象,则 this 将被设置为全局对象(在浏览器中是 window)。 工作原理如下: .call 方法接受至少一个参数:要调用其方法的对象。 后续参数将作...
tag 为 "Number"Object.prototype.toString.call(1);// => "[object Boolean]"// String 类型,tag 为 "String"Object.prototype.toString.call("");// => "[object String]"// Array 类型,tag 为 "String"Object.prototype.toString.call([]);// => "[object Array]"...
"Array", "Boolean", "Date", "Error", "Function", "JSON", "Math", "Number", "Object", "RegExp", "String" 之外的的任何字符串,[[Class]] 内部属性是引擎内部用来判断一个对象属于哪种类型的值的,需要注意的是,除了通过 Object.prototype.toString 方法之外,本规范没有...
object.prototype.tostring.call原理 Object.prototype.toString()方法返回一个表示该对象的字符串。 可以使用Object.prototype.toString.call()方法,调用一个对象的toString()方法。 原理:Object.prototype.toString.call()会以传递的值作为this值来绑定对象的toString()方法,然后调用toString()方法,返回该对象的字符串...
object.prototype.tostring.call就是利用了这一点,通过调用toString方法返回字符串中的"[object Type]"来判断一个对象的实际类型。它的语法结构如下: ```javascript Object.prototype.toString.call(obj) ``` 这里的obj可以是任意JavaScript对象。我们通过将obj作为toString方法的调用对象,然后再调用call方法来更新this指...
项目中,我们经常会直接使用Object.prototype.toString用来做类型判断。他基本是几种方法里可以开箱即用、且判断类型最完善了。 现在我们来扒皮一下他。 具体原理 在toString方法被调用时,会执行以下几个操作步骤~ 获取this指向的那个对象的[[Class]]属性的值。(这也是我们为什么要用call改变this指向的原因) ...
之前只知道Object.prototype.toString.call()可以用来判断数据类型,但是从未想过其原理,今天查资料的时候发现MDN上写的明明白白。 toString方法 一句话理解:.toString方法将对象转为一个原始值 JavaScript 调用 toString 方法将对象转换为一个原始值。你很少需要自己去调用 toString 方法;当遇到需要原始值的对象时,JavaScri...
console.log(Object.prototype.toString.call(function(){})) //[object Function] console.log(Object.prototype.toString.call(null)) //[object Null 什么类型都可以,完美. 最后加个 toString()的知识点 直接看演示: 如果不带括号 直接对 1 使用 toStirng()的时候 会把.当做小数点 然后报错 所以应该使用 ...
看下测试结果: 首先我们先Object.prototype.toString.call(obj)理解这句话的意思: 调用Object.prototype.toString方法...