繁体   English   中英

如何正确访问javascript类值

[英]How to access properly to javascript class values

我当时确实在建立一个用于处理数据库的类构造函数,但是在旅途中,我对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()

我期望从console(moon)获得相同的输出值。 为什么控制台的输出不同(mo!=== moon)? 如果您能帮助我,我将不胜感激。

  1. 您创建名称的实例
  2. 您将其名称属性(mo)的值复制到outsideName
  3. 您调用name.setName() ,将其name属性的值更改为moon。
  4. 您记录其name属性的值。
  5. 您记录outsideName的值

由于您从不会在步骤2之后更改outsideName ,因此不会更改。


我将所有内容减少到最低限度。

您可以进一步减少它。

 let object = { foo: 1 }; let value = object.foo; object.foo = 2; console.log( object.foo, value); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM