javascript – Babel通过_this转换它
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Babel通过_this转换它,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1281字,纯文字阅读大概需要2分钟。
内容图文
![javascript – Babel通过_this转换它](/upload/InfoBanner/zyjiaocheng/759/2d2b8bd6a09b45b9ad28a76d82a79d20.jpg)
我有一个工具提示的bootstrap修改.
并使用webpack / babel处理我的js
我的代码的简化可以是:
$('[data-toggle="tooltip"]').tooltip({
title: () => {
return $(this).children('.tooltip-html-content').html();
}
});
这应该是元素,bootstrap将调用此函数:
getTitle: function () {
var title
, $e = this.$element
, o = this.options
title = $e.attr('data-original-title')
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
return title
}
重要的是:
o.title.call($e[0])
其中$e [0]是工具提示dom元素.
好吧,当我用babel处理这个时,结果会改变这个_this a之前他将_this分配给他认为真实的值.
问题:我可以在babel中避免这种特定功能的转换吗?
=====
基于响应的最终解决方案:
getTitle: function getTitle() {
解决方法:
您已经使用了箭头函数,根据定义,该函数会关闭它所在的位置.
如果您不想要这种行为,请不要使用箭头功能:
$('[data-toggle="tooltip"]').tooltip({
title: function() {
// ----^^^^^^^^^^
return $(this).children('.tooltip-html-content').html();
}
});
重新编辑:
I want to use the arrow function. I prefer do a babel exclusion than an eslint exclusion.
你不能,不能使用getTitle,因为它允许你访问元素的唯一方法是设置它.箭头函数本质上有一个固定的(没有一个;它们在创建它们的执行上下文中关闭,这是固定的).您不能将箭头函数用于您希望由调用者确定的任何函数,例如在这种情况下.
您可以选择修改Bootstrap,也可以使用普通功能.后者似乎更合理.
内容总结
以上是互联网集市为您收集整理的javascript – Babel通过_this转换它全部内容,希望文章能够帮你解决javascript – Babel通过_this转换它所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。