簡體   English   中英

如何使用另一個JS文件中的一個JS文件中的對象中的數據?

[英]How do I use the data in an object from one JS file in another JS file?

我正在使用ES6,並且嘗試將名為Users的方法中的數據導出到另一個js文件中的另一個方法中:

users.js

 export default class Users {

   var User() {
    Newuser = {
        firstName: 'Tony',
        lastname: 'franklyn',
        email: `franky@gmail.com`,
        password: 'Franklin123'
    }

    return Newuser;
  }

}

login.js

import Users from '../data/user';

const newie = new Users();

export default class Signup {

    async Register() {

      await t
     .typeText(this.firstName,newie.firstName)

     }

  }

每當我的程序執行時,我都會收到TypeError:無法讀取未定義的屬性“ firstName”。

我真的對此感到困惑,請注意我沒有太多的js經驗。

當然!

問題在於NewUsers被包裝在名為User()的方法下。 代替newie.firstName ,它應該是: newie.User().firstName ;

幾件事情:

  1. 始終定義變量,最好使用constlet 避免使用var 這將防止全局范圍被污染,並且變量不會被覆蓋。

因此,代替NewUsers ,應該是:

export default class Users {

   // This is a method name. 
   // Methods do not use var, const or let
   User() {
   // This would be the variable. 
   // You would use const, because you are not
   // reassigning (using equals sign) its content.
    const Newuser = {
        firstName: 'Tony',
        lastname: 'franklyn',
        email: `franky@gmail.com`,
        password: 'Franklin123'
    }

    return Newuser;
  }

}
  1. 如果要導出數據,則不一定需要一個類。 這應該工作正常:

users.js

module.exports = {
firstName: 'Tony',
        lastname: 'franklyn',
        email: `franky@gmail.com`,
        password: 'Franklin123'

}

如果您想要多個用戶,請創建一個數組:

module.exports = [{
    firstName: 'Tony',
            lastname: 'franklyn',
            email: `franky@gmail.com`,
            password: 'Franklin123'

    }, 
  {
firstName: 'Pedro',
            lastname: 'Smith',
            email: `smith@gmail.com`,
            password: 'Smithy123'

    }
}
]

並在login.js中

// When you import Users, it will bring the properties you defined above.
import Users from '../data/user';


export default class Signup {

    async Register() {

      await t
     .typeText(this.firstName,Users.firstName)

     }

  }

//如果您采用多用戶方法,則:

代替Users.firstName ,您將使用:

// Fraklyn    
Users[0].firstName

// Pedro
Users[1].firstName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM