Введите ваш адрес почты


sdcvoy.ru
Понравился сайт? Поделись с друзьями!
Главная » Javascript » Metody-obektov-this

Методы объектов, this

методы объектовСегодня вы узнаете о методах объекта в JavaScript. Что же это такое? А для начала давайте немного вспомним, что из себя представляет объект:

var zoo = {
quantity: 3,
quantityAnimals: 2,
quantityBirds: 1
}
alert( zoo.quantity );

Ну как вспомнили? Объект позволяет хранить нам данные в виде свойств объекта, а теперь давайте добавим к нашему объекту ещё одно свойство:

var zoo = {
quantity: 3,
quantityAnimals: 2,
quantityBirds: 1,
birds: function(){
 alert( "Eagle" )
 }
};
alert( zoo.quantity );
zoo.birds(); // вызов свойства-функции

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

var zoo = { // Создание объекта
quantity: 3,
quantityAnimals: 2,
quantityBirds: 1,
};

zoo.birds = function(){ // задаем метод после создания объекта
 alert( "Eagle" )
 };
 
zoo.birds(); // вызов метода

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

Но что делать если мы хотим обратиться к какому-нибудь свойству внутри объекта? На выручку приходит ключевое слово this. Давайте посмотрим как оно работает:

var login = {
  name: 'user',
};

login.entry = function() {
    alert( this.name );   
}

var admin = login;
login = undefined;
admin.entry(); 

this гарантирует, что функция будет работать с тем объектом в котором вызвана. Например:

var login = "superUser";

var user = {
  login: "nightgremlin",

  export: function() {
    return this;
  }

};

alert( user.export().login ); // Выведет nightgremlin

В данном примере this обращается к объекту user. А теперь давайте взглянем на такой пример:

login = ["superUser"];
var user = {
  login: "nightgremlin",
  export: this
};
alert( user.export.login ); // выведет superUser

В отличие от предыдущего примера, здесь this обращается к глобальному объекту window, поэтому строчку alert( user.export.login ); можно расшифровать, как window.login


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



наверх