对标题感到抱歉,我不确定我要解决的问题的名字。
假设我有以下带有函数的类
{
printInfo(age){
console.log(name)
console.log(age)
}
}
从另一个页面,我想这样调用类:
someClass.Mike.printInfo(21)
,该函数将打印Mike和21。当然,名称Mike
是可变的,因此可以是任何东西。
有没有办法做到这一点?也许在类的构造函数中有些特殊的东西?一些JSON对象键操作?
谢谢。
答案 0 :(得分:0)
假设您将名称存储在某个地方,例如:
<application
android:name=".GdpApp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/AppThemeNoActionBarOrangeMain">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
<activity
android:name=".SplashActivity"
android:screenOrientation="landscape"
android:theme="@style/AppThemeNoActionBarSplash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
'''
如果该函数确实存储在具有以下动态属性的About对象中,则可以访问该函数:
const names = ['Mike', 'Dave'];
如果这不是您所需要的,则应尝试将问题写得更详细。
如果未在页面上定义类,则无法访问另一页面上的语句,这也会使您感到困惑。
答案 1 :(得分:0)
您需要传递所有正在使用的变量。您可以通过将它们分开来实现:
==
要使用它,您将像这样调用该方法:
printInfo(name, age)
答案 2 :(得分:0)
为每个人创建一个实例,然后在构造函数中传递名称,然后从一个实例调用printInfo()
以获取名称和年龄:
class SomeClass {
constructor(name, age) {
this.name = name;
this.age = age;
}
printInfo(age){
console.log(this.name)
console.log(age || this.age)
}
}
const mike = new SomeClass('Mike');
mike.printInfo(21);
const jean = new SomeClass('Jean', 17);
jean.printInfo();
或者您可以使用对象来获得结果:
const Mike = {
printInfo: (age) => { console.log('Mike'); console.log(age) }
};
const Jean = {
printInfo: (age) => { console.log('Jean'); console.log(age) }
};
const someClass = {
Mike,
Jean
};
someClass.Mike.printInfo(21);
someClass.Jean.printInfo(17);
// Or:
// let name = 'Mike';
// someClass[name].printInfo(21);
// name = 'Jean';
// someClass[name].printInfo(17);
甚至更好:
const constructObject = (name) => ({
printInfo: (age) => { console.log(name); console.log(age) }
});
const someClass = {
Mike: constructObject('Mike'),
Jean: constructObject('Jean')
};
someClass.Mike.printInfo(21);
someClass.Jean.printInfo(17);
// Or:
// let name = 'Mike';
// someClass[name].printInfo(21);
// name = 'Jean';
// someClass[name].printInfo(17);