uneval(...)和.toSource()有什么区别?
toSource()方法返回表示对象源代码的字符串。
uneval()方法创建Object的源代码的字符串表示。
答案 0 :(得分:1)
一个人需要一个参数,另一个则没有。这似乎是唯一的区别,尽管不鼓励使用两者。
uneval(object);
Object.toSource();
obj.toSource();
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/uneval https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource
直接来自上述网站:
非标
“这个功能是非标准的,不在标准轨道上。不要在面向Web的生产站点上使用它:它不适用于每个用户。实现之间可能存在很大的不兼容性,并且行为可能在将来发生变化。“
我会远离这个功能。可能有更好的方法来完成你想要做的事情。
答案 1 :(得分:0)
uneval()
是一种可以将一段javascript传递给的方法
.toSource()
是对象的扩展方法。
两个函数输出的结果与以下示例相同:
var a = 1234;
console.log(uneval(a)); //outputs "1234"
console.log(a.toSource()); //outputs "1234"
答案 2 :(得分:0)
请注意:toSource
和uneval
都是专有的非标准功能。
虽然uneval
是函数,即独立于主题的window
方法,但toSource
被实现为主题的方法。因此,在使用toSource
时需要进行其他错误处理。另一方面,uneval
能够处理未使用实际对象初始化的变量。
for(let v of [null, undefined])
{
console.log(uneval(v));
try
{
console.log(v.toSource());
}
catch(e)
{
console.log(e.message);
}
}