是否可以找到所有具有特殊模式的已定义Javascript对象?
在JavaScript(或库JQuery)中是否可以找到具有给定模式的所有(全局)对象 例如:是否可以找到所有具有特殊模式的已定义Javascript对象?,javascript,jquery,Javascript,Jquery,在JavaScript(或库JQuery)中是否可以找到具有给定模式的所有(全局)对象 例如: objekt_1 objekt_2 //Javascript objects function find_objects() { return ....; //return all objects that start with "object"-prefix } 对 javascript中的全局变量实际上是窗口对象的元素,因此可以执行以下操作: for(var i in window)
objekt_1
objekt_2 //Javascript objects
function find_objects() {
return ....; //return all objects that start with "object"-prefix
}
对
javascript中的全局变量实际上是窗口对象的元素,因此可以执行以下操作:
for(var i in window) {
var ret = [];
if(i.substr(0,7) == 'object_') ret.push(i);
return ret;
}
对
javascript中的全局变量实际上是窗口对象的元素,因此可以执行以下操作:
for(var i in window) {
var ret = [];
if(i.substr(0,7) == 'object_') ret.push(i);
return ret;
}
因为它们是全局对象,所以它们是全局对象的属性,通过浏览器上的
窗口变量引用全局对象。因此,您可以通过for in
循环找到它们:
var key;
for (key in window) {
// Examine `key` here, it's a string; if it matches, do
// something with `window[key]`, which is the value for that variable
}
因为它们是全局对象,所以它们是全局对象的属性,通过浏览器上的窗口变量引用全局对象。因此,您可以通过for in
循环找到它们:
var key;
for (key in window) {
// Examine `key` here, it's a string; if it matches, do
// something with `window[key]`, which is the value for that variable
}
对。如果它们是全局的,则它们存储在窗口对象中。然后您只需过滤它们:
function find_objects() {
var objs = [];
for (var k in window) {
var cVariable = window[k];
if (/^objekt/.test(k) && typeof cVariable === "object") {
objs.push(cVariable);
}
}
return objs;
}
演示:
是的。如果它们是全局的,则它们存储在窗口对象中。然后您只需过滤它们:
function find_objects() {
var objs = [];
for (var k in window) {
var cVariable = window[k];
if (/^objekt/.test(k) && typeof cVariable === "object") {
objs.push(cVariable);
}
}
return objs;
}
演示:
为什么要这样做?如果你创建了这些对象,将它们放在一个数组中会更有意义。请看这个@mpm非常好的考虑因素。我之所以想要它,是因为我无法控制所有的javascript代码。你为什么要这样做?如果你创建了这些对象,将它们放在一个数组中会更有意义。请看这个@mpm非常好的考虑因素。我想要它,因为我不能控制所有的javascript代码。