Есть такая структура (которую желательно бы не менять кардинально):
var wrapper1 = function ()
{
var wrapper2 = function ()
{
return Math.PI;
};
};
Пробовал через var caller = new wrapper1;
вызвать так caller.wrapper2()
, но возвращает undefined.
Подскажите как быть, пожалуйста. Не получается никак понять ооп в js.
Замените var wrapper2 = ...
на this.wrapper2 = ...
.
Когда вы пишете var внутри функции, то эта переменная (которая ссылается на функцию) видна только внутри функции. Если же вы обращаетесь к this (в случае javascript при создании нового экземпляра объекта через new somefunction()
this внутри этой самой функции-конструктора указывает на созданный объект.
Тогда через this.wrapper2 = ...
вы создаете новое поле в объекте и кладете в него свою функцию.
Конечно, ведь wrapper2
- приватная переменная; она существует только во время выполнения функции (или в замыкании, чего тут нет).
Используйте this
:
var wrapper1 = function ()
{
this.wrapper2 = function ()
{
return Math.PI;
};
}
var caller = new wrapper1;
console.info(caller.wrapper2());
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите как записать данные в JSON файл? Мне нужно, чтобы после заполнения полей и нажатия на кнопку Save данные сохранялись в JSON файле
Подключил модуль request-promiseДля отправки файла использую вот такой код
Есть этот элементКак мне ему сделать display none, если data-date="2017-02-30"