我正在尝试用 JavaScript 编写完全自动化的单元测试,并且正在寻找一种方法来读取各种 JS 函数中的一些私有变量。我想我想起了一种将特权成员注入函数/对象的方法(并发现“在 JS 中没有私有这样的东西”),但我找不到任何说明如何的资源。
我正在尝试阅读的属性,.prototype
但如果有办法,这里的人会比我自己找到的更快地知道在哪里指导我。
谢谢
更新
特权是指可从对象外部使用并有权读取“私有”变量(否则无法从外部读取的变量)的函数。有关 Crockford 的解释,请参阅http://javascript.crockford.com/private.html。
我尝试注入的函数示例是
o2
,我需要验证的值x
(这是一个简化的示例,实际代码进行了一些转换并将它们发送到我计划单独测试的其他函数)。var o2 = function() { var x = 'me'; };
更新 2:感谢所有花时间回复的人。尽管我在其他 SA 问题中看到人们说“JS 中没有任何东西是私有的”,但我看到这里的压倒性反应是“私有的就是私有的”。我想这更像是修辞评论,而不是我希望的对我还不知道的潜在漏洞的某种洞察。