我设置了一个类的构造函数来处理我的数据库,我这样做,但在路上我得到了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!===月亮)?我会很感激,如果你能帮助我。
outsideName
name.setName()
改变其name
属性月球的价值。name
属性的值。outsideName
的价值因为你从来没有第2步后更改outsideName
,它不会改变。
我减少一切其最小的表达。
您可以进一步降低它。
let object = { foo: 1 };
let value = object.foo;
object.foo = 2;
console.log( object.foo, value);