English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы JavaScript урока

JavaScript объекты

JavaScript функции

JS HTML DOM

JS браузер BOM

Основы AJAX урока

JavaScript справочник

Методы объектов в JavaScript

МетодыЭто方法是 функция, связанная с объектом, или функция, связанная с функцией, метод - это объект, который является свойством функции.

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

Активация JavaScript метода

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

// 创建对象
var user = {
  firstName: "Seagull",
  lastName : "an",
  age: 22,
  location: "New Delhi",
  getName : function() {
 return this.firstName + " " + this.lastName;
  }
;
// Активация метода getName()
user.getName();
Проверьте, посмотрите‹/›

Если метод вызывается без скобок (), он возвращает определение функции:

ИспользованиеthisКак объектная ссылка

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

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

  getName: function() {
   return this.firstName + " " + this.lastName;
  }

Ключевое слово this указывает на текущий объект, в котором код написан - поэтому в данном случае this эквивалентноuser.

Иными словами, this.firstName означаетЭтот объектсвойства firstName.

Вы можете добавитьJS ключевые словаУрокиJSПознакомьтесь с этой статьей о ключевом слове this.

Добавление нового метода

Чтобы добавить новый метод к объекту, вы можете использовать оператор присваивания (=) для назначения нового функции свойству.

Этот пример добавляет метод "greet" к объекту пользователя:

user.greet = function() {
    return "Hello World";
;
Проверьте, посмотрите‹/›

Getters и setters

Getters и setters были введены в ECMAScript 5 (2009).

Getter - это метод получения значения для определенного свойства.

Setter - это метод установки значения для определенного свойства.

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

JavaScript Getter (ключевое слово get)

Этот пример использует get locСвойство в качествеlocationЗначение свойства:

// Создание объекта
var user = {
  firstName: "Seagull",
  lastName: "Anna",
  age: 22,
  location: "New Delhi",
  get loc() {
     return this.location;
  }
;
// 显示来自对象的数据
document.getElementById("para").innerHTML = user.loc;
Проверьте, посмотрите‹/›

JavaScript Setter (ключевое слово set)

Этот пример использует set locСвойство в качествеlocationЗначение свойства:

// 创建对象
var user = {
  firstName: "Seagull",
  lastName: "Anna",
  age: 22,
  location: "New Delhi",
  set loc(x) {
     this.location = x;
  }
;
// Использование setter для установки свойств объекта
user.loc = "Goa";
// 显示来自对象 данных
document.getElementById("para").innerHTML = user.location;
Проверьте, посмотрите‹/›

Разница между функцией function и getter?

Два следующих примера показывают различие между function и getter:

Пример 1 (использование функции):
// 创建对象
var user = {
  firstName: "Seagull",
  lastName: "Anna",
  age: 22,
  location: "New Delhi",
  fullName: function() {
      return this.firstName + " " + this.lastName;
  }
;
// 显示来自对象 данных
document.getElementById("para").innerHTML = user.fullName();
Проверьте, посмотрите‹/›
Пример 2 (использование Getter):
// 创建对象
var user = {
  firstName: "Seagull",
  lastName: "Anna",
  age: 22,
  location: "New Delhi",
  get fullName() {
     return this.firstName + " " + this.lastName;
  }
;
// 显示来自对象的数据
document.getElementById("para").innerHTML = user.fullName;
Проверьте, посмотрите‹/›

Пример 1 fullName в качествеФункцияДоступ: user.fullName().

Пример 2 fullName в качествеСвойстваДоступ: user.fullName.

Использование Getters и Setters:

  • Это предоставляет более простой синтаксис.

  • Это позволяет использовать одинаковый синтаксис для свойств и методов.

  • Это гарантирует лучшее качество данных.

  • Это очень полезно для обработки на заднем конце.

Object.defineProperty()

Метод Object.defineProperty() также может использоваться для добавления Getter и Setter.

Грамматика:
Object.defineProperty(object, property, {value: value})

Давайте рассмотрим пример с объектом "счетчик":

var counter = {i: 0};
Object.defineProperty(counter, "increment", { 
   get: function() {this.i++;}
});
Object.defineProperty(counter, "decrement", { 
   get: function() {this.i--;}
});
Object.defineProperty(counter, "reset", { 
   get: function() {this.i = 0;}
});
Object.defineProperty(counter, "add", {
   set: function (value) {this.i += value;}
});
Object.defineProperty(counter, "subtract", {
   set: function (value) {this.i -= value;}
});
counter.reset;
counter.add = 25;
counter.increment;
Проверьте, посмотрите‹/›