Имеется код:
var user = {}; var newFirstName = "boris"; var newFirstName2 = "basil"; function setNewName(newFirtsName) { var capitalizedName = newFirstName[0].toUpperCase() + newFirstName.substr(1); var prettyfiedName = "-=" + capitalizedName + "=-"; this.name = prettyfiedName; } user.setNewName = setNewName; user.setNewName(newFirstName); // user.name = "-=Boris=-", OK user.setNewName(newFirstName2); // user.name = "-=Boris=-", ???
Почему при вызове с другим параметром значение имени пользователя не изменилось? Как исправить код?
Написать функцию-конструктор, все созданные объекты которой равны между собой.
var Clone = function() {...}; var clone1 = new Clone; var clone2 = new Clone; clone1 == clone2 // true
Написать функцию-конструктор, которая принимает один параметр - время в миллисекундах, и записывает в свойства возвращаемого объекта-спамера. У объекта также есть метод startSpam, которому передается строка для спама. После вызова метода спамер с указанным временным промежутком спамит в консоль.Примерный результирующий вывод в консоль с расшифровкой по времени приведен ниже:
>var spammer1 = new Spammer(1000); >spammer1.startSpam('first'); first // 00:00:01 first // 00:00:02 >var spammer2 = new Spammer(2000); >spammer2.startSpam('second'); first // 00:00:03 first // 00:00:04 second // 00:00:04 first // 00:00:05 first // 00:00:06 second // 00:00:06
Написать функцию-конструктор, которая принимает три параметра: тип домашнего животного, кличку (строки) и год рождения (целое). У созданного объекта:
var Pet = function() {...}; var myPet = new Pet("cat", "Barsik", 2015); for(var key in myPet) { console.log(key); } // type, name myPet.type = "dog"; myPet.name = "Murzik"; myPet.birthYear = 1700; console.log(myPet.info); // "cat Murzik: 2 years"
Написать функцию-конструктор, которая принимает параметр год и записывает его в свойство объекта. У созданного объекта:
var Years = function() {...}; var year = new Years(2017); alert(year); // "2017, не високосный" 2017 - year // 0