this关键字

它可以是全局对象、当前对象或者任意对象,this是个不固定的值,他是根据我们调用的动态来改变的;

作为函数调用

在函数被直接调用时this绑定到全局对象。在浏览器中,window 就是该全局对象

console.log(this);
function fn1(){
    console.log(this);
}

fn1();

作为对象方法调用

在 JavaScript 中,函数也是对象,因此函数可以作为一个对象的属性,此时该函数被称为该对象的方法,在使用这种调用方式时,this 被自然绑定到该对象

var obj1= {
     name: 'Byron',
     fn : function(){
           console.log(this);
    }
};

obj1.fn();

DOM对象绑定事件

在事件处理程序中this代表事件源DOM对象
<input type="text" id="input" value="3">

var input = document.getElementById('input');
   input.onclick = function (){
          alert(this.value);

<div id="div1">1111</div>

var div = window.document.getElementById('div1');
console.log(div);

div.onclick = function(){
    console.log(this);
}
var a=2;
function foo(){
    alert(this.a);
}
var obj = {
    a: 1,
    fooObj: foo
}
window.foo();
window.a;

foo();
obj.fooObj();

自定义属性

<div id="div1">1111</div>


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容