栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JS中的每个对象是否都有toString()方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JS中的每个对象是否都有toString()方法?

JS中的每个对象是否都有toString()方法?

否。只有那些继承自

Object.prototype
(如所有普通对象一样)或自行定义(或从其自定义原型继承)的人才可以。

您可以通过创建此类异常对象

Object.create(null)
。您还可以给一个普通对象一个自己的
toString
属性,该属性遮盖继承的属性,而不是一个函数(例如
{toString:0}
),但是我想那会抛出一个明显的错误。

在您的情况下,dos

bodyParser()
(did)使用的查询字符串解析器似乎确实创建了没有原型的对象,以避免
.constructor.prototype
在使用此类参数时造成混乱。请参阅qs
pullrequest#58
并表达问题1636:
Bodyparser没有设置object.prototype?

(建议更新)。

如何重新分配适当的toString方法?

您可以分配任何功能,例如

req.body.toString = function() { return "Hi, I'm a request body"; };

但您可能想要标准的:

req.body.toString = Object.prototype.toString;

其他选择是通过非标准

__proto__
属性(
req.body.__proto__ =Object.prototype
)重新定义原型,或者只是在对象上应用独立函数,而不是将其作为方法,例如
Object.prototype.toString.call(req.body)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436574.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号