首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 物件 valueOf 與 toString 轉換規則解析:alert(obj) 與 +obj 差異

     編輯:程式設計綜合問答

物件定義:

var obj = {
x: 10,
valueOf: function(){ return this.x + 30; },
toString: function(){ return this.valueOf() + 10; }
};

執行結果:

  • alert(obj) → 呼叫 toString() → 回傳 50。
  • +obj → 呼叫 valueOf() → 回傳 40,再轉為數字 40。

規則:

  1. 物件轉字串(如 alert、字串連接)優先呼叫 toString(),若無則呼叫 valueOf()。
  2. 物件轉數字(如一元加號 +、數學運算)優先呼叫 valueOf(),若無則呼叫 toString() 再轉數字。

此例中 toString 內部呼叫 valueOf,故 alert 得 50,+obj 得 40。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved