JS之this关键字
2021-02-03 20:15
标签:win key inner new ict 有一个 imp 利用 get JS中this就是执行的主体(谁来执行的this就是谁) 检查 ‘ . ‘ 左边是谁invoke 这个函数. 例如 xiaoming.age(); age函数里面有this, 然后 ‘. ‘ 旁边是xiaoming , 那么this就是指向xiaoming了.这种叫做 如果点旁边没有,那就检查有没有用到 bind, apply, call 这三种, 有的话就是调用此方法的对象. 这种叫做 如果上面两个都没有就检查代码里面有没有用到 上面三个都没有, 检查是不是有 全部都没有,如果不是strict mode那就是window对象了。如果是strict那就是 error (undefined). 要求:实现点击一下,加一; 有4种方式: JS之this关键字 标签:win key inner new ict 有一个 imp 利用 get 原文地址:https://www.cnblogs.com/jiaweixie/p/13154852.htmlJS之this关键字
如何确定this呢
this
这个 keyword
确实非常的让人困惑,但是其实有一个好方法可以理解.
Implicit Binding
.explicit binding
.new
这个keyword
, 有的话那就是指向new左边的函数对象。 这种叫做new binding
arrow function
, 有arrow function
的话就是, 那么指向是arrow function
的lexical binding
的对象. 就是它的parent
. 这种叫做 lexical binding
实例
投票的实现原理
var count = 0;
oBtn.onclick = function () {
count++;
spanNum.innerHTML = count;
};
oBtn.onclick = (function () {
var count = 0;
return function () {
count++;
spanNum.innerHTML = count;
}
})();
//或者写成下面的也可以
(function () {
var count = 0;
oBtn.onclick = function () {
count++;
spanNum.innerHTML = count;
}
})();
// 推荐使用
var oBtn = document.getElementById("btn");
var spanNum = document.getElementById("spanNum");
oBtn.count = 0;
oBtn.onclick = function () {
spanNum.innerHTML = ++this.count;
};
oBtn.onclick = function () {
var oldNum = spanNum.innerHTML;
//下面两个都可以
// spanNum.innerHTML = Number(oldNum) + 1;
spanNum.innerHTML++;
}
上一篇:浅谈一下可扩展性网站架构设计
下一篇:JS实战:仿LED跑马灯效果