JavaScript this 对象的总结
JavaScript this 对象的总结
施长成 发表于3年前
JavaScript this 对象的总结
  • 发表于 3年前
  • 阅读 7
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: 理解 JavaScript中的 this对象,this对象在不同的使用环境中对应不同的对象,可以是当前全局对象也可以是调用的对象等。。。

this 关键字引用的是包含它的函数作为某个对象的方法被调用时的那个对象——《JavaScript .Dom 高级程序设计》

和变量不同,关键字 this没有作用域的限制,嵌套的函授不会从调用它的函数中继承 this。如果嵌套函数作为方法调用,其this值指向调用他的对象,如果嵌套函数作为函数调用,其this值不是全局对象就是 undefined ——《JavaScript权威指南》

上面是两本比较权威的书,对js的定义。

this 是 js的一个关键字,随着函数的使用 场合不同,this的值也会发生变化的。但是总有一个原则,那就是this只的是调用函数的那个对象

JavaScript有一套完全不同于其他语言的对 this 的处理机制。在五种不同的情况下,this指向各不相同的对象。

  1. 全局范围内

    1. this;//在全局范围内使用 this,this会指向全局对象 window
  2. 函数调用

    1. 形如: foo();//这是 foo函数中的 this对象也会指向全局。 window
  3. 方法调用

    1. 形如: test.foo();//此时foo函数中的 this对象会指向test对象。
  4. 调用构造函数

    1. new foo();//由new创建出的函数,我们称知为构造函数。在函数内容this指向新创建的对象
  5. 显示的是指this

    1. 当使用 Function.prototype 上的call或者apply方法时,函数内部的this会被显式的设置为函数调用的第一个参数

  6. 特殊情况

Foo.method = function(){
    function test(){
        //this 会被设置为全局对象(就是window对象)
    }    
}

    常见的误解是test中的this将会指向Foo对象,实际上他是指向window全局对象

    7. 自己收集的

var shi = {
        init:function(){
            this.button();
        },
        button:function(){
            console.log(this == shi);//true
            console.log(this);//Object
            console.log("shi----button")
        }
    }

        一个json对象中的 this 表示他自身这个对象即上例中的 shi 对象。


共有 人打赏支持
粉丝 4
博文 63
码字总数 22544
×
施长成
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: