簡體   English   中英

為什么當我第二次使用 console.log(course) 時視圖沒有更新

[英]why are the views not updated when I console.log(course) the second time

var course = new Object();

var course = {
  title: "JavaScript Essential Training",
  instructor: "Morten Rand-Hendriksen",
  level: 1,
  published: true,
  views: 0,
  updateViews: function() {
    return ++course.views;
  },
};

console.log(course);
console.log(course);

如果您可以發布您實際看到的內容,將會有所幫助。 但是,您肯定想調用 updateViews() 來更改視圖。 只是要求它寫出 object 的當前值並沒有調用 object 上的每個方法。

您正在將一個空的 object 分配給變量課程。

var course = new Object();

現在你正在分配一個帶有屬性的 object。

var course = {
  title: "JavaScript Essential Training",
  instructor: "Morten Rand-Hendriksen",
  level: 1,
  published: true,
  views: 0,
  updateViews: function() {
    return ++course.views;
  },
};

這里 object 被分配給變量 course 並且 updateViews 方法不會調用,因為這是一個初始化。 所以如果你想更新視圖,你應該從你的變量 course 調用 updateViews 。 像這樣

console.log(course.updateViews());

僅控制台記錄 object 不會更新視圖。

您的第一個聲明也沒有用。

如果你願意,你可以這樣做:

 var course = { title: "JavaScript Essential Training", instructor: "Morten Rand-Hendriksen", level: 1, published: true, views: 0, updateViews: function() { return ++course.views; }, toString: function() { this.updateViews(); return this } }; console.log(course.toString()); console.log(course.toString());

我找到了更詳細的答案

console.log 是否調用 object 的 toString 方法?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM