如何正确地访问到JavaScript类值

问题描述 投票:0回答:1

我设置了一个类的构造函数来处理我的数据库,我这样做,但在路上我得到了JavaScript的行为有些疑惑。

为了更好地理解我的一切降低其最小表达的问题。这里的核心是:

name.js

class Name {
    constructor(){
        this.value = 'mo'
    }
    setName(){
        this.value = 'moom'
    }
}

export default new Name()

sayName.js

import name from './name'

const outsideName = name.value

function sayName(){
    const insideName = name.value
    console.log(insideName) // => moon
    console.log(outsideName) // => mo
}

export default sayName

index.js

import name from './name'
import sayName from './sayName'

name.setName()
sayName()

我期待得到从控制台(月亮)相同的输出值。为什么从控制台不同的输出(MO!===月亮)?我会很感激,如果你能帮助我。

javascript es6-class
1个回答
0
投票
  1. 创建名称的实例
  2. 您复制它的名称属性(MO)的值outsideName
  3. 你叫name.setName()改变其name属性月球的价值。
  4. 您登录其name属性的值。
  5. 您登录outsideName的价值

因为你从来没有第2步后更改outsideName,它不会改变。


我减少一切其最小的表达。

您可以进一步降低它。

let object = { foo: 1 };
let value = object.foo;
object.foo = 2;
console.log( object.foo, value);
© www.soinside.com 2019 - 2024. All rights reserved.