如何使用变量调用对象及其方法
How to call object and its method with a variable
我有一堆带有 init 方法的 jQuery 对象,所以现在我有这样的东西
$.myobject1.init(somevar);
$.myobject2.init(somevar);
$.myobject3.init(somevar);
$.myobject4.init(somevar);
$.myobject5.init(somevar); // somevar is the same var in all the calls
但我正在寻找一种简化此代码的方法,如下所示
var objectName = "myobject1"; // or any other object name
$. objectName .init(somevar);
感谢您的帮助! :-(
因为它们已经是jQuery对象,所以你不需要$.你可以像这样使用.add((:
var object = myobject1.add(myobject2).add(myobject3).add(myobject4).add(myobject5);
object.init(somvar)
只需使用
$[objectName].init(somevar);
在 JavaScript 中,所有对象都是映射。 这真的很奇怪,但这意味着你可以做这个技巧:
var p = "mypropertyname";
var obj = {};
obj[p] = somevalue;
然后,如果您这样做:
console.log(obj.mypropertyname)
您将获得:
> somevalue
如果你的意思是你想遍历你的对象名称,那么你应该知道你不能用点表示法组合字符串:
var someObj = {
subObj: {
a: 5
}
};
someObj.subObj.a === 5; // true
someObj."subObj".a === 5; // throws error
但是您可以使用带有方括号表示法的字符串:
someObj["subObj"].a === 5; // true
var propName = "subObj";
someObj[propName].a === 5; // true
因此,您可以使用它通过 for 循环遍历对象名称,也可以按照其他答案中的建议使用 jQuery 方法。
相关文章:
- 序列化数据属性中对象的最可靠方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 如何从对象的原型方法访问JavaScript对象属性
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 设置嵌套对象属性的更好方法
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- call()和apply()实际上是用来欺骗方法处理类似数组的对象的
- 对象文字方法上的Javascript绑定不起作用
- Meteor应用程序无法运行-对象#<编译器>没有方法'主机'
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- Underscore.js某些对象的所有方法的总和
- 对象#<XMLHttpRequest>没有方法'完成'
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 丢失对象“;这个“;方法中的上下文
- 如何在ajax中调用javascript对象的方法
- 为什么页面方法对象未定义
- 如何使用在另一个文件中定义的JavaScript方法/对象
- 如何告诉JsHint忽略“未解析的函数或方法”?对象上的警告
- 使用jinja/javascript动态创建方法/对象