В этой статье я расскажу об объектах JavaScript, свойствах и методах. Мы будем создавать потрясающую перчатку бесконечности, которую носит Танос, используя объекты JavaScript. Что может быть лучше объяснения, чем разговор о перчатке бесконечности?
Недавно я смотрел Avengers Infinity Wars, и я должен сказать, что был полностью потрясен Таносом. Он такой крутой.
Он фиолетовый инопланетянин размером с Халка, но гораздо более спокойный и умный. Он выбил дерьмо из Халка, даже не используя камень бесконечности!
Если вы еще не смотрели фильм, вам обязательно стоит посмотреть его для Таноса (его играет Джош Бролин, который также играл Кейбла в «Дэдпуле 2» и молодого агента К в «Людях в черном 3»).
Хорошо, хватит фильмов, мы будем использовать объекты JavaScript, чтобы построить его могучую перчатку. Если вы все еще боретесь с объектами, я бы посоветовал вам взглянуть на мою другую статью Объекты JavaScript, быстро объясненные, чтобы быстро освежиться.
Свойства и методы
Вы, должно быть, слышали, что эти два слова время от времени отбрасываются. Что, если бы я сказал вам, что это просто еще одно причудливое слово для данных и функций?
Давайте создадим Infinity Gauntlet как объект JS:
const infinityGauntlet = {}
Перчатка содержит 6 камней бесконечности, которые питают ее.
Давайте добавим предмет в объект:
const infinityGauntlet = { powerStone: 'Controls all of the power in the universe. It can be used to augment or inhibit any force.' }
Итак, теперь у меня есть свойство под названием powerStone
со значением text / String.
Если я наберу infinityGaunlet.powerStone
в инструментах разработчика, я увижу следующий результат:
Это называется собственностью. Свойством может быть что угодно: текст, число, логическое значение или даже другой объект.
В JavaScript мы набираем object.nameOfTheProperty
, чтобы получить доступ к значению свойства.
Объекты также могут иметь функции. В области объектов функции называются методами.
Помнить,
Свойство предназначено для хранения данных об объекте.
Метод - это действие, оно что-то делает для объекта.
Давайте создадим функцию, которая будет использовать силу этого камня.
Мы можем написать такую функцию:
const infinityGauntlet = { powerStone: 'purple', usePowerStone: function() { return 'Using super strength to crush the moon and throw it over to the Avengers!!'; } }
В ES6 мы можем упростить написание методов.
Итак, вместо этого:
usePowerStone: function() { return 'Using super strength to crush the moon and throw it over to the Avengers!!'; }
Мы можем просто написать это:
usePowerStone() { return 'Using super strength to crush the moon and throw it over to the Avengers!!'; }
Если я наберу infinityGauntlet.usePowerStone()
, мы получим результат:
Вы должны ввести object.methodName()
, чтобы запустить метод, который находится внутри объекта.
Итак, Перчатка Бесконечности - это желтая перчатка. Это не идет с камнями. Вы должны собирать эти камни по одному.
Поскольку у нас есть 6 камней, и все они будут иметь информацию и могут выполнять некоторые действия, почему бы не поместить эти шесть камней как свои собственные объекты. (Подсказка: вы можете добавлять объекты как свойства) Так будет проще управлять:
const infinityGauntlet = { powerStone: {}, spaceStone: {}, realityStone: {}, mindStone: {}, soulStone: {}, timeStone: {} }
Для простоты поработаем одним камнем:
Наличие каждого камня дает вам особую силу. Это означает, что вы можете использовать силу только тогда, когда у вас есть этот камень.
Давайте создадим новое свойство для удерживания камня. Мы можем сделать его логическим значением.
const infinityGauntlet = { spaceStone: { equipped: false } }
Я создал новое свойство под названием equipped
, где false
означает, что в нем нет камня.
Давайте создадим свойство info
, в котором будет храниться некоторая информация об этом камне:
spaceStone: { equipped: false, info: 'Limitless manipulation of space, allowing for teleportation, dimensional manipulation, creation of wormholes, etc.' }
Наконец, давайте создадим метод, чтобы мы могли использовать камень:
use() { return 'Do something'; }
Но нам нужно проверить, есть ли у нас камень!
Итак, я могу сделать это:
use() { if(this.equipped) { return 'Create a wormhole and transport from planet Titan to Wakanda in a minute!'; } else { return 'No space stone!' } }
this.equipped
проверит, есть ли камень в его собственном владении equipped
. Если у нас есть камень, мы призовем силу, иначе он не сработает.
Полный код пока выглядит так:
Итак, теперь, когда у нас нет камня, (false) он выведет это:
Но когда мы соберем камень (правда), он выведет это сообщение об успехе:
Теперь я продолжу и завершу все остальные камни, поскольку все они имеют одинаковые свойства и методы:
Помимо 6 объектов для перчаток, я также дал ему один дополнительный метод snapFinger
Когда у вас есть все шесть камней бесконечности, вы можете щелкнуть пальцем, чтобы ощутить еще больший хаос.
snapFinger() { if(this.powerStone.equipped && this.spaceStone.equipped && this.realityStone.equipped && this.mindStone.equipped && this.soulStone.equipped && this.timeStone.equipped) { return 'Destroyed half of the population in the universe!' } else { return 'You need all the stones to perform this action!' } }
Он активируется только тогда, когда присутствуют все камни. Поэтому я просто использую оператор &&
AND, чтобы проверить, есть ли в перчатке все камни.
Итак, об этом в этой статье. Можете ли вы расширить перчатку с помощью более интересных функций? Не стесняйтесь и дайте мне знать !!
Считаете этот пост полезным? Пожалуйста, дайте ему ХОЗЯЙСТВО!
Хотите узнать больше о JavaScript и Node JS? Посетите мой блог ›› TamalWeb.com