奇怪的!
我正在使用javascript开发Moodle插件。我不是js专家,只是开始。我在被调用的对象上的函数中有一些调试代码:
console.log(M.core_filepicker.instances);
for (var clientid in M.core_filepicker.instances) {
console.log(M.core_filepicker.instances[clientid]);
}
console.log位输出以下内容:
Object
4e16f16a0dc14: FilePickerHelper
4e16f16a1837e: FilePickerHelper
4e16f16a03933: FilePickerHelper
4e16f169cd12c: FilePickerHelper
4e16f169d70e0: FilePickerHelper
4e16f169e2466: FilePickerHelper
4e16f169ed42e: FilePickerHelper
具有属性键4e16 ...等的“对象”以及FilePickerHelper类型的这些属性的值。
但是for循环不会运行。
有趣的是,它确实在其他范围内运行并遍历属性。在我的浏览器或其他功能的调试控制台中。我不明白为什么会这样。
杰米
最佳答案
for (var i = 0; i < myArray.length; i++)
for (var i in myArray)
是不同的构造。在我看来,循环内的代码将更喜欢for的第一种类型。
是什么
for (var instance in M.core_filepicker.instances) {
console.log(instance);
}
给你?
(如果在for中执行操作,则请注意hasOwnProperty()。)