Javascript uneval()和.toSource()之间的区别是什么
Javascript uneval()和.toSource()之间的区别是什么,javascript,Javascript,uneval(…)和.toSource()之间有什么区别 方法返回表示对象源代码的字符串 方法创建对象源代码的字符串表示形式 一个带着一个参数,另一个不带。这似乎是唯一的区别,尽管不鼓励使用两者 uneval(object); Object.toSource(); obj.toSource(); 直接从上面的网站: 非标准 此功能是非标准的,不在标准轨道上。不要在面向Web的生产站点上使用它:它不会适用于所有用户。实现之间也可能存在很大的不兼容性,并且行为可能会在将来发生变化 我会远离这
uneval(…)
和.toSource()
之间有什么区别
方法返回表示对象源代码的字符串
方法创建对象源代码的字符串表示形式
一个带着一个参数,另一个不带。这似乎是唯一的区别,尽管不鼓励使用两者
uneval(object);
Object.toSource();
obj.toSource();
直接从上面的网站:
非标准
此功能是非标准的,不在标准轨道上。不要在面向Web的生产站点上使用它:它不会适用于所有用户。实现之间也可能存在很大的不兼容性,并且行为可能会在将来发生变化
我会远离这个功能。可能有更好的方法来完成您的任务。uneval()
是一种可以向其传递一段javascript的方法。.toSource()
是对象的扩展方法
两个函数的输出相同,如以下示例所示:
var a = 1234;
console.log(uneval(a)); //outputs "1234"
console.log(a.toSource()); //outputs "1234"
请注意:toSource
和uneval
都是专有的非标准功能
虽然uneval
是一个函数,即独立于主题的窗口
方法,toSource
被实现为主题的方法。由于这一事实,在使用toSource
时需要进行额外的错误处理。另一方面,uneval
能够处理未使用实际对象初始化的变量
for(设v为[null,未定义])
{
console.log(uneval(v));
尝试
{
log(v.toSource());
}
捕获(e)
{
控制台日志(e.message);
}
}
是的,它们的输出是相同的。。。但你确定对任何物体都是一样的吗?如果uneval只是.toSource的别名,为什么不在MDN文章中明确地说呢?没有人说它是一个别名。javascript中的几乎所有内容都是一个对象;如果(a.toSource()!==uneval(a)){equal=false;break;}