javascript - 为什么同一个对象的属性在两个不同的console.log中是不同的?
问题描述
console.log(myDog) 在 myDog.eatTooManyTreats() 之前和之后打印两个不同的值,12 和 13。不能真正理解为什么会这样,不是对象通过引用传递,这意味着它们不能有两种不同的状态. 感谢您的关注。
const dogFactory = (_name, _breed, _weight) => {
return dogObj = {
_name,
_breed,
_weight,
get name () {
return this._name;
},
get breed () {
return this._breed;
},
get weight () {
return this._weight;
},
set name (value) {
return this._name = value;
},
set breed (value) {
return this._breed = value;
},
set weight (value) {
return this._weight = value;
},
bark() {
return console.log('ruff! ruff!');
},
eatTooManyTreats() {
return this._weight++;
}
}
}
const myDog = dogFactory('Dodo', 'Milk', 12);
console.log(myDog); // weight is 12
myDog.eatTooManyTreats();
console.log(myDog); // weight is 13
解决方案
推荐阅读
- html - 如何使页脚粘在底部
- dll - 客户端和 DLL 在调用连接方面如何兼容
- kendo-ui - jquery的kendo-grid依赖模块有哪些?
- java - Jmeter>>>每次执行./jmeter命令时都发现错误(./jmeter:/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java/bin/java:未找到)
- reactjs - React Typescript Storybook - 字符串文字类型
- windows - 文件被永久删除后如何恢复
- android - 服务返回状态码200但不返回数据
- flutter - 颤动中的自定义容器形状
- vue.js - 覆盖 Vuetify 默认的灰色深色主题
- c# - 将数字相加的 C# 计算器