Javascript: базовые вопросы
Функции конструкторы
Теперь рассмотрим поведение ключевого слова this в функциях-конструкторах:
function MyConstructor(propName) {
this.name = 'Default'
if (propName) {
this.name = propName
}
return this
/* return тут только для наглядности, так как функция конструктор
по умолчанию возвращает создаваемый объект */
}
let defaultConstructor = new MyConstructor()
let constructorWithName = new MyConstructor('MyConstructor')
console.log(defaultConstructor)
console.log(constructorWithName)
Смотрим в консоль:
> MyConstructor {name: 'Default'}
> MyConstructor {name: 'MyConstructor'}
Что имеем? Если функция вызывается как конструктор, то внутри неё, соответственно, создаётся новый объект, и значение this будет ссылаться на него. Это будет работать одинаково, независимо от strict‑режима.
#JSInterviewquestions
Функции конструкторы
Теперь рассмотрим поведение ключевого слова this в функциях-конструкторах:
function MyConstructor(propName) {
this.name = 'Default'
if (propName) {
this.name = propName
}
return this
/* return тут только для наглядности, так как функция конструктор
по умолчанию возвращает создаваемый объект */
}
let defaultConstructor = new MyConstructor()
let constructorWithName = new MyConstructor('MyConstructor')
console.log(defaultConstructor)
console.log(constructorWithName)
Смотрим в консоль:
> MyConstructor {name: 'Default'}
> MyConstructor {name: 'MyConstructor'}
Что имеем? Если функция вызывается как конструктор, то внутри неё, соответственно, создаётся новый объект, и значение this будет ссылаться на него. Это будет работать одинаково, независимо от strict‑режима.
#JSInterviewquestions