В реальной жизни автомобиль — это объект.
У автомобиля есть свойства, такие как вес и цвет, а также методы, такие как запуск и остановка:
| Object | Properties | Methods |
|---|---|---|
|
car.name = Fiat car.model = 500 car.weight = 850kg car.color = white |
car.start() car.drive() car.brake() car.stop() |
Все автомобили имеют одинаковые свойства, но значения свойств различаются от автомобиля к автомобилю.
Все автомобили имеют одинаковые методы, но методы выполняются в разное время.
Вы уже узнали, что переменные JavaScript контейнеры для значений данных.
Этот код присваивает простое значение (Fiat) переменная с именем car:
let car = "Fiat";Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Variables</h2>
<p id="demo"></p>
<script>
// Create and display a variable:
let car = "Fiat";
document.getElementById("demo").innerHTML = car;
</script>
</body>
</html>
Объекты тоже являются переменными. Но объекты могут содержать множество ценности.
Этот код присваивает множество значений (Fiat, 500, белый) переменная названный автомобиль:
const car = {type:"Fiat", model:"500", color:"white"};Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p id="demo"></p>
<script>
// Create an object:
const car = {type:"Fiat", model:"500", color:"white"};
// Display some data from the object:
document.getElementById("demo").innerHTML = "The car type is " + car.type;
</script>
</body>
</html>
Значения записываются в виде пар имя:значение (имя и значение, разделенные знаком двоеточие).
Общепринятой практикой является объявление объектов с помощью ключевого слова const.
Узнайте больше об использовании const с объектами в главе: JS Const.
Вы определяете (и создаете) объект JavaScript с помощью литерала объекта:
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p id="demo"></p>
<script>
// Create an object:
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
// Display some data from the object:
document.getElementById("demo").innerHTML =
person.firstName + " is " + person.age + " years old.";
</script>
</body>
</html>
Пробелы и переносы строк не имеют значения. Определение объекта может занимать несколько строк:
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p id="demo"></p>
<script>
// Create an object:
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
// Display some data from the object:
document.getElementById("demo").innerHTML =
person.firstName + " is " + person.age + " years old.";
</script>
</body>
</html>
Пары имя:значения в объектах JavaScript называются свойствами:
Джон
Доу
50
синий
Доступ к свойствам объекта можно получить двумя способами:
objectName.propertyNameили
objectName["propertyName"]person.lastName;Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p>There are two different ways to access an object property.</p>
<p>You can use person.property or person["property"].</p>
<p id="demo"></p>
<script>
// Create an object:
const person = {
firstName: "John",
lastName : "Doe",
id : 5566
};
// Display some data from the object:
document.getElementById("demo").innerHTML =
person.firstName + " " + person.lastName;
</script>
</body>
</html>
person["lastName"];Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p>There are two different ways to access an object property.</p>
<p>You can use person.property or person["property"].</p>
<p id="demo"></p>
<script>
// Create an object:
const person = {
firstName: "John",
lastName : "Doe",
id : 5566
};
// Display some data from the object:
document.getElementById("demo").innerHTML =
person["firstName"] + " " + person["lastName"];
</script>
</body>
</html>
Объекты JavaScript — это контейнеры для именованных значений, называемых свойствами.
Объекты также могут иметь методы.
Методы — это действия, которые можно выполнять над объектами.
Методы хранятся в свойствах как функция. определения.
Джон
Доу
50
синий
function() {return this.firstName + " " + this.lastName;}
Метод — это функция, хранящаяся как свойство.
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};В приведенном выше примере this относится к объекту person.
И.Э. this.firstName означает свойство firstName объекта this.
И.Э. this.firstName означает свойство firstName объекта person.
В JavaScript ключевое слово this относится к объекту.
Какой объект зависит от того, как этот вызывается (используется или вызывается).
Ключевое слово this относится к разным объектам в зависимости от того, как оно используется:
В объектном методе this относится к объекту.
Само по себе это относится к глобальному объекту.
В функции this относится к глобальному объекту.
В функции в строгом режиме это имеет значение не определено.
В событии this относится к элементу, получившему событие.
Такие методы, как call(), apply() и bind() может ссылаться на this на любой объект.
это не является переменной. Это ключевое слово. Вы не можете изменить значение this.
это руководство по JavaScript
В определении функции this относится к «владельцу» функции.
В приведенном выше примере это является объектом person, который "владеет" полное имя.
Другими словами, this.firstName означает свойство firstName этого объекта.
Узнайте больше о этом в этом руководстве по JavaScript.
Доступ к методу объекта осуществляется с помощью следующего синтаксиса:
objectName.methodName()name = person.fullName();Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p>An object method is a function definition, stored as a property value.</p>
<p id="demo"></p>
<script>
// Create an object:
const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
// Display data from the object:
document.getElementById("demo").innerHTML = person.fullName();
</script>
</body>
</html>
Если вы получаете доступ к методу без круглых скобок(), он вернет определение функции:
name = person.fullName;Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p>If you access an object method without (), it will return the function definition:</p>
<p id="demo"></p>
<script>
// Create an object:
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
// Display data from the object:
document.getElementById("demo").innerHTML = person.fullName;
</script>
</body>
</html>
Когда переменная JavaScript объявлена с ключевым словом «new», эта переменная создан как объект:
x = new String(); // Declares x as a String object
y = new Number(); // Declares y as a Number object
z = new Boolean(); // Declares z as a Boolean objectИзбегайте объектов String, Number и Boolean. . Они усложняют ваш код и замедляют работу скорость выполнения.
Вы узнаете больше об объектах позже в этом уроке.