在script中有几种绑定事件的方法,有的在绑定函数中传入this参数,有的没有,那么,它们之间到底有什么区别呢?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/index.html" method="post">
{% csrf_token %}
<input type="text" name="username"/>
<a onclick="submit()">提交</a>
<a onclick="submit1(this)">提交</a>
<a id="fm">提交</a>
</form>
<script src="/static/js/jquery-3.3.1.min.js"></script>
<script>
/*
如果以此种方式绑定事件,节点括号中不传入this参数,那么this在这里代指的就是整个doucument对象
*/
function submit() {
console.log(this)
}
/*
如果以此种方式绑定事件,节点括号中传入this参数,那么this在这里代指的就是当前标签对象
*/
function submit1(ths) {
console.log(ths)
}
/*
找到当前标签
如果以此种方式绑定事件,节点括号中不传入this参数,那么this在这里代指的就是当前标签对象
(ps:箭头函数还是整个document)
*/
$('#fm').click (function submit3() {
console.log(this);
});
</script>
</body>
</html>
原文: