Что такое метод в javascript
Перейти к содержимому

Что такое метод в javascript

  • автор:

JavaScript: Методы

Кроме свойств, у данных существуют методы — функции, находящиеся внутри свойств. С практической точки зрения это значит, что метод работает и вызывается как функция, но делает это как свойство, через точку.

Встроенные методы всегда оперируют теми данными, с которыми они связаны. Метод .toUpperCase() возвращает ту же строку, но преобразуя все символы в верхний регистр. Методов у данных обычно значительно больше, чем свойств, например, для строк их несколько десятков. В документации, на первый взгляд, они описаны немного странно: String.prototype.toLowerCase(). Это описание раскрывает некоторые внутренние детали реализации, которые сейчас не важны, да и мы не изучили всей необходимой базы для разговора о прототипах.

Методы есть и у чисел:

Хозяйке на заметку. Технически всё несколько сложнее. Методы есть не у самих чисел, а у данных (объектов) типа Number. Числа, записанные в переменные или константы, автоматически преобразуются к данному типу во время обращения к ним, в это время происходит так называемый boxing.

Возникает закономерный вопрос: зачем нужны методы, почему не просто функции? С числами ситуация ещё сложнее. Часть операций реализована в виде методов самих чисел, например, .toFixed() , а ещё большая часть — в виде методов, доступных через Math .

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

  1. Исторически так сложилось. JavaScript разрабатывался слишком быстро и поэтому не все было продумано хорошо
  2. Далеко не все функции имеют отношение к конкретному значению. Возьмем для примера Math.min() . Эта функция находит минимальное число среди всех, которые ему были переданы. Эту функцию нелогично делать методом конкретного числа, например, так — (1).min() . Она не имеет никакой связи с конкретным числом

С другой стороны, функции, работающие с конкретным числом, для единообразия должны быть реализованы как методы. К таким функциям относится получение модуля числа. То есть вместо такого вызова Math.abs(-10) , логично иметь такой: (-10).abs() .

Что касается методов в целом, то не все так однозначно. Есть языки, в которых методов нет и там всё прекрасно, есть языки, где методы — это основной способ работы с функциями, но даже в этих языках всегда, наряду с методами, используются обычные функции. JavaScript — язык, в котором прижились оба подхода, в нём активно используются как обычные функции, так и методы. О плюсах и минусах подобных подходов подробно рассказывается в курсах посвященных ООП.

Задание

Приведите строку text к нижнему регистру и напечатайте её на экран.

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

  • Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Это нормально ��, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.

JavaScript Methods and this Keyword

In this tutorial, you will learn about JavaScript object methods and this keyword with the help of examples.

In JavaScript, objects can also contain functions. For example,

In the above example, a person object has two keys ( name and greet ), which have a string value and a function value, respectively.

Hence basically, the JavaScript method is an object property that has a function value.

Accessing Object Methods

You can access an object method using a dot notation. The syntax is:

You can access property by calling an objectName and a key. You can access a method by calling an objectName and a key for that method along with () . For example,

Here, the greet method is accessed as person.greet() instead of person.greet .

If you try to access the method with only person.greet , it will give you a function definition.

JavaScript Built-In Methods

In JavaScript, there are many built-in methods. For example,

Here, the parseInt() method of Number object is used to convert numeric string value to an integer value.

To learn more about built-in methods, visit JavaScript Built-In Methods.

Adding a Method to a JavaScript Object

You can also add a method in an object. For example,

In the above example, an empty student object is created. Then, the name property is added. Similarly, the greet method is also added. In this way, you can add a method as well as property to an object.

JavaScript this Keyword

To access a property of an object from within a method of the same object, you need to use the this keyword. Let’s consider an example.

Output

In the above example, a person object is created. It contains properties ( name and age ) and a method greet .

In the method greet , while accessing a property of an object, this keyword is used.

In order to access the properties of an object, this keyword is used following by . and key.

Note: In JavaScript, this keyword when used with the object’s method refers to the object. this is bound to an object.

However, the function inside of an object can access it’s variable in a similar way as a normal function would. For example,

Методы и this в JS

В предыдущей статье мы уже говорили про методы. Так называются функции, которые хранятся внутри объекта.

Например, здесь у объекта person два ключа. Ключу name соответствует строковое значение. Ключу greet соответсвует функция, которая выводит в консоль слово «Привет» — это метод объекта person .

Доступ к методам объекта

Синтаксис

Вызов метода осуществляется через точку — как и вызов свойств. Только в случае метода понадобится еще указать в конце круглые скобки () .

Если вызвать метод без скобок — JavaScript сообщит описание функции.

Встроенные методы

В JavaScript много встроенных методов.

Например, встроенный метод объекта Number — parseInt. Он преобразовывает числа, записанные в string, в integer.

Как добавить метод в объект

Часто встроенных методов недостаточно, поэтому приходится создавать свои, кастомные методы. Вот, как добавить метод в объект:

В этом примере мы сначала созадем пустой объект student , затем добавляем ему свойство name и метод greet . Как вы видите, методы добавляются так же, как и свойства.

Ключевое слово this

Чтобы получить доступ к свойству или методу объекта из метода того же объекта, необходимо использовать ключевое слово this.

Синтаксис

Рассмотрим на примере.

Вывод:

Сначала мы создали объект person со свойством name и методом greet .

Чтобы получить доступ к свойству name внутри метода greet того же объекта person мы использовали ключевое слово this .

JavaScript Object Methods

In JavaScript, the this keyword refers to an object.

Which object depends on how this is being invoked (used or called).

The this keyword refers to different objects depending on how it is used:

In an object method, this refers to the object.
Alone, this refers to the global object.
In a function, this refers to the global object.
In a function, in strict mode, this is undefined .
In an event, this refers to the element that received the event.
Methods like call() , apply() , and bind() can refer this to any object.

See Also:

JavaScript Methods

JavaScript methods are actions that can be performed on objects.

A JavaScript method is a property containing a function definition.

Property Value
firstName John
lastName Doe
age 50
eyeColor blue
fullName function()

Methods are functions stored as object properties.

Accessing Object Methods

You access an object method with the following syntax:

You will typically describe fullName() as a method of the person object, and fullName as a property.

The fullName property will execute (as a function) when it is invoked with ().

This example accesses the fullName() method of a person object:

Example

If you access the fullName property, without (), it will return the function definition:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *