如何使用变量调用对象及其方法

How to call object and its method with a variable

本文关键字:方法 对象 调用 何使用 变量      更新时间:2023-09-26

我有一堆带有 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 方法。