--- # :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 ---