Joh*_*zle 4 javascript typescript
我有一个函数,它应该检查一个对象是否有一个toString()
函数并输出它或以其他方式返回该对象。问题是,它也会在平面对象上触发并最终[Object object]
作为一个字符串返回,这在 GUI 上显然看起来很糟糕。有没有办法确定对象是否使用toString()
返回丑陋的默认方法[Object object]
或具有toString()
返回漂亮字符串的自定义函数。
这是我目前的功能:
(data: any) => (data != null && typeof data.toString === 'function') ? data.toString() : data;
Run Code Online (Sandbox Code Playgroud)
1)你可以比较Object.prototype.toString
。如果没有被覆盖,则引用是相等的
const obj1 = {};
console.log(obj1.toString === Object.prototype.toString);
const obj3 = { toString() { } };
console.log(obj3.toString === Object.prototype.toString);
Run Code Online (Sandbox Code Playgroud)
2)您可以通过以下方式检查存在 hasOwnProperty
const obj1 = {};
console.log(obj1.hasOwnProperty('toString'));
const obj3 = { toString() { } };
console.log(obj3.hasOwnProperty('toString'));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1250 次 |
最近记录: |