---
# System prepended metadata

title: ':blue_book: Object.prototype.valueOf()'

---


---

# :blue_book: Object.prototype.valueOf() 



---
> valueOf() მეთოდი გვიბრუნებს კონკრეტული ობიექტის პრიმიტიულ მნიშვნელობას. უკეთ რო ვთქვათ JavaScript იყენებს valueOf() მეთოდს იმისთვის რომ ობიექტი დააკონვერტიროს პრიმიტივ მნიშვნელობად. 



---


# :pencil:  Syntax/სინტაქსი

---

```
valueOf()

function MyNumberType(n) {
  this.number = n;
}

MyNumberType.prototype.valueOf = function() {
  return this.number;
  
};

```


---

# :bulb: Description/აღწერა


---

> თანდაყოლილად ყველა ობიექტს valueOf() მეთოდი გადაეცემა მემკვიდრეობით, იმ შემთხვევაში თუ ობიექტი ვერ აბრუნებს შესაბამის პრიმიტიულ მნიშვნელობას მაშინ valueOf() მეთოდი აბრუნებს თავად ობიექტს. 
> გასათვალისწინებელია ის რომ მნიშვნელობის გამოტანის დროს ობიექტის მნიშვნელობას კიდევ ვუმატებთ რაღაც სხვას რომ მივიღოთ პრიმიტიული მნიშვნელობა მაგალითად: 


```
 function MyNumberType(n) {
  this.number = n;
}

MyNumberType.prototype.valueOf = function() {
  return this.number;
};

const object1 = new MyNumberType(4);

// როდესაც ვიყენებთ valueOf() მეთოდს მნიშვვნელობის 
// გამოტანის დროს თავად ობიექტს ვუმატებთ რაღაცას(ეს შეიძლება 
// იყოს როგორც რიცხვი, ასევე სტრინგი, თავად ობიექტი, 
// არაი, ცარიელი სტრინგი და ა.შ.)

console.log(object1 + 3); 

// მოსალოდნელი შედეგი: 7

```

---


# :key: Example/მაგალითი



---
```
// მოსალოდნელი შედეგები თუ ობიექტის მნიშვნელობას 
// valueOf() მეთოდის დროს დავუმატებთ შემდეგ მონაცემებს:

+"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
```


---


### :bookmark_tabs: resources / წყარო


---

> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf#using_unary_plus

> https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.prototype.tolocalestring



---

