javascript中的this与继承分析

拷贝式的继承

这种继承方式简单的说就是通过复制的方式将父类中的内容拷贝到子类中,从而实现了继承。

关于 this

之前课中我们讲构造函数时提到了 this ,当时并没有讲的太清楚究竟它是什么,因为其实它的取值是根据情况的不同而会发生变化的。所以这节课我们花点时间来聊聊浏览器环境中的它。

全局 this

在浏览器中全局环境下的 this 即为 window 对象。大家可以执行以下代码来进行验证:

console.log(this === window); // true

所以全局环境下 var 申明的变量或者任何情况下非 var 申明的变量都可以被此操作到。

函数里的 this

除了各种回调、指明了执行时的上下文之外,通常情况下函数被调用时内部的 this 指向的是全局对象。如:

var test = 123;
function f() {
    this.test = 234;
}

console.log(test); // 123
f();
console.log(test); // 234

当使用了 "use strict" 时,this 值为 undefined

function f() {
    "use strict";
    console.log(this); // undefined
}

当使用了 new 操作符时,this 值为可能被返回的新的实例:

var test = 123;

function f() {
    this.test = 234;
}

console.log(test); // 123
console.log(new f().test); // 234
console.log(test); // 123

对象中的 this

对象中的 this 即代指这个对象本身,例如可以在对象的方法中通过 this 访问到这个对象的其他属性。如:

var obj = {
    test: 123,
    f: function () {
        console.log(this.test); // 123
    }
}

DOM 事件回调中的 this

在 DOM 事件回调中的 this 指的是绑定该事件的 DOM 元素。如:

document.addEventListener('click', function () {
    console.log(this); // document 节点
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值