На данный вопрос уже ответили:
Имеется конструктор:
var Constructor = function (str) {
this.str = str;
};
Constructor.prototype.someFunc = function () {
//code
};
var a = new Constructor('hello');
var b = new Constructor('world');
Нужно чтобы у a
и b
дополнительно были разные методы.
Приходит в голову только передача функции через параметр.
var a = new Constructor('hello', func(str, someData){
//some code
});
var Constructor = function (str, func) {
this.str = str;
this.func = func.bind(null, this.str);
};
Но как вызвать ее в контексте нового экземпляра объекта, ведь нечто подобное вызовет ее в контексте конструктора?
var Constructor = function (str, func) {
this.str = str;
this.func = funс;
};
var a = new Constructor('hello', function() {
//some code
console.log(this.str);
});
var b = new Constructor('bye', function() {
//some code
console.log(this.str);
});
a.func(); // hello
b.func(); // bye
В конструкторе this
ссылается на экземпляр, поэтому просто присвойте значение, и функция станет методом
Если очень хочется bind
var Constructor = function (str, func) {
this.str = str;
this.func = funс.bind(this); // this опять же ссылка на экземпляр
};
Но так, у a.func
всегда будет контекст экземпляра (a
в данном случае) и ,передавая потом где-то этот метод как callback
, контекст теряться уже не будет
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вопрос: практикуюсь в JavaScript по одноименной книжке, решил написать запрос на ресурс через Promises, однако они возвращают undefinedВ чем может быть...
Всем доброго пятничного дняКак я писал ранее, я изучаю JavaScript по книге Хавербеке
Не понемаю почему не получается передать запрос в контроллер средствами AJAX Цель нудно изменить значение $article->public на 0 (по дефолту 1)