<script>
/*
* this 指向<調(diào)用>該<函數(shù)>的那個(gè)<對(duì)象>
*
*
* 場(chǎng)景1:
* 直接調(diào)用 普通函數(shù)
* this 指向 window,因?yàn)槟J(rèn)是 window 調(diào)用該函數(shù)
*
* 場(chǎng)景2:
* 事件處理函數(shù)
* this 指向 觸發(fā)事件處理函數(shù)的那個(gè)事件源 對(duì)象
*
* 場(chǎng)景3:
* 對(duì)象方法
* this 指向調(diào)用該方法(函數(shù))的對(duì)象
*
* 場(chǎng)景4:
* 定時(shí)器內(nèi)的回調(diào)函數(shù)
* this 指向 window 對(duì)象,因?yàn)槎〞r(shí)器是 window對(duì)象下的一個(gè)方法而已
*
* 場(chǎng)景5:
* 構(gòu)造函數(shù)內(nèi)部的this
* this 指向當(dāng)前構(gòu)造函數(shù)實(shí)例對(duì)象
*
*
* */
/* 場(chǎng)景1:普通函數(shù) */
// function fn() {
// console.log(this); // this === window
// }
// fn();
/* 場(chǎng)景2:事件處理函數(shù) */
// var btn = document.getElementById('btn');
// btn.onclick = function () {
// console.log(this); // this === btn
// };
/* 場(chǎng)景3:對(duì)象的函數(shù) */
// var obj = {
// name: '李狗蛋',
// age: 18,
// sayHi : function () {
// console.log(this); // this === obj
// }
// };
// obj.sayHi();
/* 場(chǎng)景4:定時(shí)器回調(diào)函數(shù) */
// var timer = window.setInterval(function () {
// console.log(this); // this === window
// },1000)
/* 場(chǎng)景5:構(gòu)造函數(shù) */
function Person(name) {
this.name = name;
console.log(this); // this 指向?qū)嵗龑?duì)象,實(shí)例對(duì)象還沒賦值給變量,所以判斷不了
}
var p1 = new Person('小明');
</script>