JavaScript uneval 函数有什么作用?

JavaScript what does the uneval function do?

NOTE: I do realize that there's currently low browser support for the uneval function, however I am in interest to know what it does, and how it works.

我知道 eval() 将 javascript 代码作为字符串执行,但 uneval() 对我来说似乎很奇怪。它似乎 unevaluates 代码,从其用途之一判断,deep 对象克隆。 例如:

let myObject = {  nonsense: null  };
var newObject = eval(  uneval(myObject)  ); 
// The above example deeply clones myObject in Mozilla Firefox

但是魔法是如何发挥作用的呢? uneval 做什么,允许这样的用途?更重要的是,其他用途是什么?因为它无缝 unevaluate evaluated 内容; 真正的考验是,它能 unevaluate 其他任何东西吗 除了通过 eval() 函数传递的内容(或者在这种特殊情况下,反之亦然)?

uneval函数returns给定对象的来源;而 eval 函数通过评估该源代码来执行相反的操作。 这样想,你得到了一个对象的源,然后你评估源得到相同的对象,只是在不同的内存区域。这是一个 link 妈妈文档中的一个很好的资源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/uneval,如评论中所述。