是否可以访问未记录的API成员?

时间:2014-02-22 18:57:45

标签: javascript

例如,Web Audio API的AudioBuffer对象包含许多存储音频数据的数组缓冲区。它们没有记录在我能找到的任何地方,但您可以通过调用getChannelData方法来访问它们,该方法返回Float32Array。对Float32Array或其底层数组缓冲区的引用必须存储在AudioBuffer对象的某处,对吧?除了通过提供的AudioBuffer方法之外,我是否可以通过某种方式扩展Float32Array对象以访问此getChannelData?显然我需要知道它的名字,但假设我这样做,我可以访问它吗?或者它是以一些疯狂的编译格式存储的,我没有希望得到它?

1 个答案:

答案 0 :(得分:2)

如果未记录该属性,并且在检查对象时未显示该属性,则很可能无法访问该属性。请考虑以下内容,演示如何防止访问“私有”数据:

var Whatever = (function () {
    var hidden = 1;
    return {
        getHidden: function () {
            return hidden;
        }
    };
}());

console.log(Whatever.hidden); // undefined
console.log(Whatever.getHidden()); // 1