如何使用内置函数更改JavaScript中的属性值?

如何使用内置函数更改JavaScript中的属性值?,javascript,Javascript,我试图通过单击按钮来简单地更改某个人年龄的值,这是我拥有的对象中的属性值。我觉得这应该行得通 <p id="demo"></p> <button onclick="incrementAge()">Click me</button> <script> var person = { name:"Rich", age:25, eyeColor:"blue" }; document.getElementById("

我试图通过单击按钮来简单地更改某个人年龄的值,这是我拥有的对象中的属性值。我觉得这应该行得通

<p id="demo"></p>

<button onclick="incrementAge()">Click me</button>

<script>
var person = {
    name:"Rich",
    age:25, 
    eyeColor:"blue"
};
document.getElementById("demo").innerHTML = person.name + " " + person.age;


function incrementAge(){
    return person.age += 1
}
</script>

点击我 个人变量={ 姓名:“富”, 年龄:25岁, 眼睛颜色:“蓝色” }; document.getElementById(“demo”).innerHTML=person.name+“”+person.age; 函数递增(){ 返回人。年龄+=1 }
您还需要重置页面上元素的内容:

<p id="demo"></p>

<button onclick="incrementAge()">Click me</button>

<script>
var person = {
    name:"Rich",
    age:25, 
    eyeColor:"blue"
};



function incrementAge(){
    person.age += 1;
    document.getElementById("demo").innerHTML = person.name + " " + person.age;
}
</script>

点击我 个人变量={ 姓名:“富”, 年龄:25岁, 眼睛颜色:“蓝色” }; 函数递增(){ 人.年龄+=1; document.getElementById(“demo”).innerHTML=person.name+“”+person.age; }
您还需要重置页面上元素的内容:

<p id="demo"></p>

<button onclick="incrementAge()">Click me</button>

<script>
var person = {
    name:"Rich",
    age:25, 
    eyeColor:"blue"
};



function incrementAge(){
    person.age += 1;
    document.getElementById("demo").innerHTML = person.name + " " + person.age;
}
</script>

点击我 个人变量={ 姓名:“富”, 年龄:25岁, 眼睛颜色:“蓝色” }; 函数递增(){ 人.年龄+=1; document.getElementById(“demo”).innerHTML=person.name+“”+person.age; }
问题在于document.getElementById(“demo”)。innerHTML未绑定到HTML视图


值正在更改,但您没有显示它。

问题在于document.getElementById(“demo”)。innerHTML未绑定到HTML视图


值正在更改,但您没有显示它。

我想您希望显示新时代。如果是这样的话,您将需要用它更新innerHTML

function incrementAge(){
    person.age += 1;
    document.getElementById("demo").innerHTML = person.name + " " + person.age;
}

我猜你想让新时代展现出来。如果是这样的话,您将需要用它更新innerHTML

function incrementAge(){
    person.age += 1;
    document.getElementById("demo").innerHTML = person.name + " " + person.age;
}

我认为您的代码实际上按照您所描述的那样工作,但是效果与您所期望的不同

document.getElementById("demo").innerHTML = person.name + " " + person.age;

^这不是恒定状态的瞬态表达式。您的代码中没有任何内容可以说“始终让这种情况发生。”;它将一次而不是一次地做出改变。您应该做的是将其放入
refreshNameAge()
函数中,并在任何可能更改姓名和年龄的函数之后调用它。或者,您可以使用
Object.defineProperty
将其绑定到属性getter/setter中,尽管这会变得更复杂。

我认为您的代码实际上是按照您所描述的那样工作的,但效果与您所期望的不同

document.getElementById("demo").innerHTML = person.name + " " + person.age;

^这不是恒定状态的瞬态表达式。您的代码中没有任何内容可以说“始终让这种情况发生。”;它将一次而不是一次地做出改变。您应该做的是将其放入
refreshNameAge()
函数中,并在任何可能更改姓名和年龄的函数之后调用它。或者,您可以使用
Object.defineProperty
将其绑定到属性getter/setter中,尽管这样会更加复杂。

Sooo?它确实起作用并改变了属性。为什么你不这么认为?你返回的值是什么?当然,你可能想在变异后将
人物
重新渲染为
#demo
。Sooo?它确实起作用并改变了属性。为什么你不这么认为?你将值返回给什么?当然,你可能希望在变异后将
人物
重新渲染为
#演示