标签:OBject 变量 call 方法 Object 调用 toString 报错 prptotype
Object.prptotype.toString.call 赋值给一个变量,调用这个变量报错;
但是测试用例里一个函数b赋值给一个变量bar,bar确实也可以调用。
原因:
https://blog.csdn.net/weixin_43933771/article/details/118733716
我们要理解OBject.prptotype.toString是干什么的,其次理解call方法;
首先,如果每一个由new OBject()创建的对象的 toString()方法未被重写,就会返回形如【object XXX】形式的字符串。
但是,大多数对象对于toString()方法都是重写了的,因此这时需要使用OBject.prptotype.toString方法来调用未被重写前的toString方法。
其次call方法是Function.prototype里的方法是改变toString()方法里的this的值的,和apply、blnd一样,所以call方法要求前面必须是函数调用;
最后,OBject.prptotype.toString.call方法就是调用OBject.prptotype.toString方法,并用call将对象的this传过去;
你这样搞,call那里还有函数调用??所以会报错;
解决:
const toString = Object.prototype.toString; tString.call(xxx);
标签:OBject,变量,call,方法,Object,调用,toString,报错,prptotype 来源: https://www.cnblogs.com/EricShen/p/16298053.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。