たとえば、ライブラリがあり、ソース コードが表示されないように保護したいと考えています。頭に浮かぶ最初の方法は、次のようなプライベート関数のパブリック ラッパーを作成することです。
function executeMyCoolFunction(param1, param2, param3) {
return executeMyCoolFunction_(param1, param2, param3);
}
この方法では、コードの公開部分のみが表示されます。問題ありませんが、すべての Google サービス関数は のように見えますfunction abs() {/* */}
。Google のようにライブラリのソース コードを非表示にする方法はありますか?
編集 00:別のライブラリを使用してライブラリ コードを「非表示」にしないでください。つまり、既知のプロジェクト キーを持つ LibA は、未知のプロジェクト キーを持つ LibB を使用します。LibB のパブリック関数コードは、それらを取得して実行することさえ可能です。コードは
function exploreLib_(lib, libName) {
if (libName == null) {
for (var name in this) {
if (this[name] == lib) {
libName = name;
}
}
}
var res = [];
for (var entity in lib) {
var obj = lib[entity];
var code;
if (obj["toSource"] != null) {
code = obj.toSource();
}
else if (obj["toString"] != null) {
code = obj.toString();
}
else {
var nextLibCode = exploreLib_(obj, libName + "." + entity);
res = res.concat(nextLibCode);
}
if (code != null) {
res.push({ libraryName: libName, functionCode: code });
}
}
return res;
}
function explorerLibPublicFunctionsCode() {
var lstPublicFunctions = exploreLib_(LibA);
var password = LibA.LibB.getPassword();
}