Baseline Widely available
valueOf()
ë©ìëë í¹ì ê°ì²´ì ìì ê°ì ë°íí©ëë¤.
function MyNumberType(n) {
this.number = n;
}
MyNumberType.prototype.valueOf = function () {
return this.number;
};
const object1 = new MyNumberType(4);
console.log(object1 + 3);
// Expected output: 7
구문 ë°í ê°
ê°ì²´ì ìì ê°.
ì¤ëªì°¸ê³ : (ë¨í) ëí기 ê¸°í¸ ë ê°ë
valueOf
ì ë¨ì¶ ííì¼ë¡ ì¬ì©ë©ëë¤. ì를 ë¤ë©´, ë¤ìê³¼ ê°ì ííì ë³´ì¸ì.+new Number()
. ë¨í ëí기 ì¬ì©í기.ë 참조 íì¸ì.
JavaScriptë ê°ì²´ë¥¼ ìì ê°ì¼ë¡ ë³íí ë valueOf
ë©ìë를 í¸ì¶í©ëë¤. ë³´íµ ìì ê°ì íìë¡ í ë ììì ì¬ì©íë¯ë¡ ì§ì í¸ì¶í´ì¼ íë ê²½ì°ë ë§¤ì° ëë
ëë¤.
기본ì ì¼ë¡ Object
ì 모ë íì ê°ì²´ë valueOf
를 ììë°ìµëë¤. ë´ì¥ë íµì¬ ê°ì²´ë 모ë valueOf
를 ì¬ì ìí´ ì í©í ê°ì ë°íí©ëë¤. ì´ë¤ ê°ì²´ê° ìì ê°ì ê°ì§ê³ ìì§ ìë¤ë©´, valueOf
ë ê°ì²´ ì¤ì¤ë¡ë¥¼ ë°íí©ëë¤.
ì¬ë¬ë¶ì ì½ëìì valueOf
를 í¸ì¶í´ ë´ì¥ ê°ì²´ë¥¼ ìì ê°ì¼ë¡ ë³íí ì ììµëë¤. ì¬ì©ì ì ì ê°ì²´ë¥¼ ë§ë¤ ë valueOf
를 ì¬ì ìí´ Object
ì ë©ìë ëì ë¤ë¥¸ íëì ë¶ì¬í ìë ììµëë¤.
기본 valueOf
ë©ìë ëì ì¬ì©í í¨ì를 ìì±í ì ììµëë¤. ì´ ë í¨ìë 매ê°ë³ì를 ë°ì§ ììì¼ í©ëë¤.
MyNumberType
ì´ë¼ë ê°ì²´ ííê° ì¡´ì¬íê³ , ì´ ê°ì²´ì valueOf
ë©ìë를 ë§ë¤ê³ ì¶ë¤ê³ ê°ì íê² ìµëë¤. ë¤ìì ì½ëë ê°ì²´ì valueOf
ë©ìëì ì¬ì©ì ì ì í¨ì를 í ë¹í©ëë¤.
MyNumberType.prototype.valueOf = function () {
return customPrimitiveValue;
};
ìì ì½ëê° íì±íë ìíìì ì´ë¤ MyNumberType
ê°ì²´ë¥¼ ìì ê°ì¼ë¡ ííí´ì¼ íë©´ JavaScriptê° ìëì¼ë¡ ì í¨ì를 ì¤íí©ëë¤.
ì´ ê°ì²´ì valueOf
ë©ìëë ë³´íµ JavaScriptê° í¸ì¶íê² ì§ë§ ë¤ìì²ë¼ ì§ì í¸ì¶í ìë ììµëë¤.
ì°¸ê³ : 문ìì´ ë¬¸ë§¥ìì ê°ì²´-문ìì´ ë³íì toString()
ë©ìë를 ì¬ì©íë©°, String
ê°ì²´ì valueOf
를 ì¬ì©í´ ìì 문ìì´ë¡ ë³ííë ê²ê³¼ë ë¤ë¦
ëë¤. 모ë ê°ì²´ë, ë¹ë¡ ê²°ê³¼ê° "[object type]
" ë¿ì´ë¼ë 문ìì´ ë³í 기ë¥ì ê°ì§ê³ ììµëë¤. ê·¸ë¬ë ëë¤ìì ê°ì²´ë ì«ì, ë¶ë¦¬ì¸, í¨ì ë±ì¼ë¡ ë³íëì§ ììµëë¤.
function MyNumberType(n) {
this.number = n;
}
MyNumberType.prototype.valueOf = function () {
return this.number;
};
var myObj = new MyNumberType(4);
myObj + 3; // 7
ë¨í ëí기 ì¬ì©í기
+"5"; // 5 (string to number)
+""; // 0 (string to number)
+"1 + 2"; // NaN (doesn't evaluate)
+new Date(); // same as (new Date()).getTime()
+"foo"; // NaN (string to number)
+{}; // NaN
+[]; // 0 (toString() returns an empty string list)
+[1]; // 1
+[1, 2]; // NaN
+new Set([1]); // NaN
+BigInt(1); // Uncaught TypeError: Cannot convert a BigInt value to a number
+undefined; // NaN
+null; // 0
+true; // 1
+false; // 0
ëª
ì¸ ë¼ì°ì í¸íì± í¨ê» 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4