如何访问变量键并将其用作另一个函数中的变量?

时间:2019-05-10 17:43:18

标签: javascript node.js

对标题感到抱歉,我不确定我要解决的问题的名字。

假设我有以下带有函数的类

{
 printInfo(age){
 console.log(name)
 console.log(age)
 }
}

从另一个页面,我想这样调用类: someClass.Mike.printInfo(21),该函数将打印Mike和21。当然,名称Mike是可变的,因此可以是任何东西。

有没有办法做到这一点?也许在类的构造函数中有些特殊的东西?一些JSON对象键操作?

谢谢。

3 个答案:

答案 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);