this указывает на владельца функции, внутри которой он обозначен
1 |
function myFunction() { return this; } |
- внутри функции this указывает на владельца функции, которым является глобальный объект | |
2 |
var person = { firstName: "John", lastName "Doe", fullName: function() { return this.firstName + " " + this.lastName; } } document.write(person.fullName()); |
- владельцем функции является объект person: используется для связывания методов и свойств объекта | |
3 |
var person1 = { fullName: function() { return this.firstName + " " + this.lastName; } } var person2 = { firstName:"John", lastName: "Doe", } var text = person1.fullName.call(person2); document.write(text); |
- при вызове person1.fullName с объектом person2 в качестве параметра с помощью метода call(), this будет обращаться к объекту person2 | |
4 |
<button onclick="this.style.display='none'"> Нажми на меня, и я исчезну! </button> |
- в обработчике события HTML this указывает на HTML элемент, получивший это событие |
позволяeт декларировать переменные с областью видимости внутри блока
1. Область видимости внутри блока { } | |
{ var x = 2; } document.write("Результат: " + x); |
{ let x = 2; } document.write("Результат: " + x); |
2. Область видимости внутри цикла | |
var i = 2; document.write("Внутри цикла: "); for(var i = 0; i < 5; i++){ document.write(i + ", "); } document.write("Вне цикла: " + i); |
var i = 2; document.write("Внутри цикла: "); for(let i = 0; i < 5; i++){ document.write(i + ", "); } document.write("Вне цикла: " + i); |
3. Передекларирование переменных | |
var x = 10; { var x = 2; } document.write("Результат: " + x); |
var x = 10; { let x = 2; } document.write("Результат: " + x); |
var x = 10; // Можно let x = 2; // Нельзя |
let x = 10; // Можно var x = 2; // Нельзя |
let x = 10; // Можно let x = 2; // Нельзя |
|
4. Поднятие переменных | |
x = 2; var x; document.write("Результат: " + typeof(x)); |
x = 2; let x; document.write("Результат: " + typeof(x)); |
позволяeт декларировать константы с областью видимости внутри блока
1. Область видимости внутри блока { } | |
{ var x = 2; } document.write("Результат: " + x); |
{ const x = 2; } document.write("Результат: " + x); |
2. Присваивание во время декларации | |
const PI = 3.14; document.write("Результат: " + PI); |
const PI; PI = 3.14; document.write("Результат: " + PI); |
3. Можно изменять свойства константных объектов, но нельзя присвоить новое значение | |
const car = {type:"Fiat", color:"white"}; car.color = "red"; document.write("Результат: " + car.color); |
const car = {type:"Fiat", color:"white"}; car = {type:"Volvo", color:"red"}; document.write("Результат: " + car.color); |
4. Можно изменять константные массивы, но нельзя присвоить им новый массив | |
const cars = ["Saab", "Volvo", "BMW"]; cars[0] = "Toyota"; document.write("Результат: " + cars[0]); |
const cars = ["Saab", "Volvo", "BMW"]; cars = ["Toyota", "Volvo", "Audi"]; document.write("Результат: " + cars[0]); |
4. Передекларирование констант | |
var x = 10; // Можно const x = 2; // Нельзя |
const x = 10; // Можно var x = 2; // Нельзя |
const x = 10; // Можно const x = 2; // Нельзя |
|
5. Поднятие констант | |
x = 2; var x; document.write("Результат: " + typeof(x)); |
x = 2; const x; document.write("Результат: " + typeof(x)); |