我不希望第三方JS看到我公开的函数的代码,因此我已经覆盖了它们的.toString方法。
除了toString之外,还有其他方法可以公开功能代码吗?
谢谢!
自定义toString
属性是不够的,因为Function.prototype.toString
可以在函数上调用:
function foo() {
console.log('foo implementation');
};
foo.toString = () => 'hidden';
console.log(Function.prototype.toString.call(foo));
当前,没有办法完全隐藏实现而不Function.prototype.toString
事先进行覆盖,以至于没有人可以在以后引用和调用它(这是一个很奇怪的解决方案),例如:
Function.prototype.toString = () => 'nope';
但是即使在多领域环境中,这也不是万无一失的。
最终可能有一种适当的方法可以通过实现隐藏提案来做到这一点。它的语法与相似use strict
,不同之处在于它将阻止函数的外部使用者看到内部任何内容。例如:
const y = () => {
"hide source";
// implement y here
// nothing outside will be able to see its source code (easily)
};
该提案仅处于第2阶段,但有望最终成为官方语言。
话虽如此-这些技术可用于使第三方代码更难查看您正在执行的操作,但不能保证此操作-毕竟,任何关心的人都可以手动查看您的代码并查看这是怎么回事。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句