Можно ли привязать экземпляр к нестатическому методу сразу после создания экземпляра класса ES6? - PullRequest
0 голосов
/ 13 декабря 2018

Есть ли способ собрать первые два ряда в один?Мне неудобно заставлять пользователей MarkupPreprocessingHelper писать две строки ...

let markupPreprocessingHelper = new MarkupPreprocessingHelper(config);
let preprocessTemplates = markupPreprocessingHelper.takeCareAboutMarkupPreprocessing.bind(markupPreprocessingHelper);

gulp.task('Development run', gulp.series(
   preprocessTemplates,
   // ...
));

1 Ответ

0 голосов
/ 13 декабря 2018

Если вы сделаете отсканированную копию функции и сохраните ее как свойство экземпляра, вы сможете затем передать ее, и пользователям не нужно будет связывать ее вручную:

function someClass(name){
    this.name = name
    // make a prebound copy of myFunction
    this.preBound = this.myFunction.bind(this)
}

someClass.prototype.myFunction = function(){
    console.log(this.name)
}

let p = new someClass("Mark")

// now you can pass a reference of it around without losing the binding
let fn = p.preBound
setTimeout(fn, 500)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...