
如何控制 javascript 函数中 this 的指向
在 javascript 函数中,this 关键字指向不同的事物会引起困扰。当绑定到元素时,this 指向该元素。当绑定全局作用域时,this 指向 window 对象。
对于你的问题:”function f() { alert($(this).attr(‘id’)); }” 中,this 有时指向点击的元素,有时指向函数本身。这是因为 javascript 的事件处理机制。当元素触发事件时,this 会被隐式绑定到事件源元素。然而,当直接调用函数时,this 会指向全局作用域(window 对象)。
要解决这个问题,有以下方法:
Python精要参考 pdf版
这本书给出了一份关于python这门优美语言的精要的参考。作者通过一个完整而清晰的入门指引将你带入python的乐园,随后在语法、类型和对象、运算符与表达式、控制流函数与函数编程、类及面向对象编程、模块和包、输入输出、执行环境等多方面给出了详尽的讲解。如果你想加入 python的世界,David M beazley的这本书可不要错过哦。 (封面是最新英文版的,中文版貌似只译到第二版)
1 查看详情
立即学习“Java免费学习笔记(深入)”;
使用 bind 方法: bind 方法创建一个新函数,并将其 this 值固定为给定的值。例如:
function f(event) { console.log(event.target.id);}// 将 f 函数绑定到 event 对象的 target 属性上const boundfunction = f.bind(event);boundfunction(); // 输出事件目标的 id
使用箭头函数: 箭头函数隐式绑定 this 到其父作用域的 this 值。因此,无论如何使用箭头函数,this 始终指向父作用域的 this 值。例如:
function f() { console.log(this.id);}$("button").click(function() { f.call(this); // 输出按钮的 id});
将事件对象作为参数传递: 如果函数需要在事件上下文中运行,可以将事件对象作为参数传递,然后使用 event.target 获取触发事件的元素。例如:
function f(event) { console.log(event.target.id);}$("button").click(f);
上述方法都可以用来控制 javascript 函数中 this 的指向。选择哪种方法取决于应用程序的特定需求和设计。
以上就是JavaScript 中的 `this` 指向问题:如何控制函数中的 `this`?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/895010.html
微信扫一扫
支付宝扫一扫