javascript - Concernant le problème de spécification de ceci lors de la liaison d'événements, veuillez aider
阿神
阿神 2017-06-22 11:53:57
0
1
784
function Tab($selector){
    var _this = this;
    
    //    这种可以保证this正确,但是这样写很累赘
    $selector.on("click", function(){
        _this.switchIndex();
    }); 
       
    //    不兼容ie某些浏览器
    $selector.on("click", this.switchIndex.bind(this));
    
    //    这种方式绑定会导致switchIndex内部的this为$selector,除了上面那些,
    //    还有其他比较自然的方式吗?
    $selector.on("click", this.switchIndex);
}
Tab.prototype = {
    switchIndex: function(){
        //    ...
    }
};
阿神
阿神

闭关修行中......

répondre à tous(1)
学习ing

Pour être honnête, le premier type est très courant, et peu importe si vous l’utilisez trop.

Bien sûr, si vous aimez la deuxième option, vous pouvez envisager d'utiliser le polyfill de bind (c'est-à-dire d'utiliser call et d'autres méthodes pour implémenter bind lorsqu'il n'y a pas de liaison).

ps : Dans es6, la fonction flèche n'a pas ce problème, mais tout comme le deuxième cas, elle ne prend en charge que les versions supérieures des navigateurs modernes.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!