Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript uneval()和.toSource()之间的区别是什么_Javascript - Fatal编程技术网

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;}