Javascript - 我以为这会改变

标签 javascript

我目前正在尝试掌握按引用传递与值传递,据我了解,JS 对象是按引用传递的。

如果是这种情况,为什么第二个 console.log 语句不生成对象属性的大写版本?

任何澄清都会很棒!

var string = {
  text: 'This is a string inside an object',
};


console.log(string.text);

string.text.toUpperCase();

console.log(string.text);

最佳答案

String#toUpperCase 方法不会更新原始字符串,它只是返回大写字符串。因此需要通过返回值更新属性值。

var string = {
  text: 'This is a string inside an object',
};


console.log(string.text);

string.text = string.text.toUpperCase();

console.log(string.text);

关于Javascript - 我以为这会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396769/

相关文章:

javascript - 使用 OrbitControls 时如何在 Three.js 中禁用右键单击鼠标移动相机旋转?

javascript - Array.fill 中的奇怪行为

javascript - Ember : Change model's primary key with FixtureAdapter

javascript - 未定义的值,读取输入

javascript - 用于 ajax 的 JSON 世界市场 api 中的多个键和值

javascript - 在弹出窗口关闭时刷新父页面

javascript - 表单上的 ReactJS onSubmit 不起作用

javascript - React - 子级到父级的回调不起作用

javascript - jQuery 困惑

javascript - Ajax -- 无法使数据作为 "x-www-form-urlencoded"发送