例如,Web Audio API的AudioBuffer
对象包含许多存储音频数据的数组缓冲区。它们没有记录在我能找到的任何地方,但您可以通过调用getChannelData
方法来访问它们,该方法返回Float32Array
。对Float32Array
或其底层数组缓冲区的引用必须存储在AudioBuffer
对象的某处,对吧?除了通过提供的AudioBuffer
方法之外,我是否可以通过某种方式扩展Float32Array
对象以访问此getChannelData
?显然我需要知道它的名字,但假设我这样做,我可以访问它吗?或者它是以一些疯狂的编译格式存储的,我没有希望得到它?
答案 0 :(得分:2)
如果未记录该属性,并且在检查对象时未显示该属性,则很可能无法访问该属性。请考虑以下内容,演示如何防止访问“私有”数据:
var Whatever = (function () {
var hidden = 1;
return {
getHidden: function () {
return hidden;
}
};
}());
console.log(Whatever.hidden); // undefined
console.log(Whatever.getHidden()); // 1