Skip to content

valueOf

garevna edited this page Sep 24, 2018 · 8 revisions

🎓 valueOf

Метод valueOf () есть у каждого объекта

Этот метод вызывается автоматически, когда необходимо вернуть примитивное значение объекта

Например, если объект сравнивается с числом

var obj = {
   num: 5,
   val: 10,
   x: 11,
   valueOf: function () {
      return this.num + this.val - this.x
   }
}

Если теперь мы выполним сравнение:

obj == 4

то получим true

При выполнении сравнения будет вычисляться примитивное значение объекта, т.е. вызываться метод valueOf

Если примитивное значение объекта вычислить невозможно, то будет возвращен сам объект

valueOf () - унаследованный метод любого объекта

Но это не означает, что мы не можем его переопределить

☕ 1

var human = {
   name: "Ivan",
   age: 25,
   valueOf: function () {
      return this.name + ": " + this.age
   }
}

console.info ( human + "!" ) // Ivan: 25!

☕ 2

Конечно, так делать не стоит, но все-таки интересно 😉

в результате выполнения следующего кода:

Object.prototype.valueOf = function () {
    return "Это объект, блин, а не игрушка!"
}

все нативные объекты JS будут "ругаться" соответствующим образом при попытке получить их примитивное значение

console.info ( Number + "" )
Это объект, блин, а не игрушка!

☕ 3

const test = {
   num: 0,
   valueOf: function () {
      return this.num += 1
   }
}

❔ Что вернет выражение:

test == 1 && test == 2 && test == 3

© Irina H.Fylyppova 2018
Использование данных материалов или любой их части коммерческими школами ( курсами ) является нарушением авторских прав


Новая версия


1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19

Занятие 1

⤵️

Занятие 2

⤴️ ⤵️

Занятие 3

⤴️ ⤵️

Занятие 4

⤴️ ⤵️

Занятие 5

⤴️ ⤵️

Занятие 6

⤴️ ⤵️

Занятие 7

⤴️ ⤵️

Занятие 8

⤴️ ⤵️

Занятие 9

⤴️ ⤵️

Занятие 10

⤴️ ⤵️

Занятие 11

⤴️ ⤵️

Занятие 12

⤴️ ⤵️

Занятие 13

⤴️ ⤵️

Занятие 14

⤴️ ⤵️

Занятие 15

⤴️ ⤵️

Занятие 16

⤴️ ⤵️

Занятие 17

⤴️ ⤵️

Занятие 18

⤴️ ⤵️

Занятие 19

⤴️ ⤵️

⤴️

ico20 Дополнительно
dir-20 Справочная инфо

Clone this wiki locally