美文网首页
this指向练习题(二)

this指向练习题(二)

作者: 锋享前端 | 来源:发表于2018-09-05 16:29 被阅读0次

亲爱的小伙伴们,大家都知道在js中this指向对于小白来说是很难搞定的,大家可以看看
this指向,这里进入this指向练习题(一)然后做一做下面的10道练习题:看看自己是不是掌握了this指向问题;

//1

function Fn() {
    this.user = "剃了胡子";
}
var a = new Fn();
console.log(a.user);

// 2

var a = {
    user: "剃了胡子",
    fn: function () {
        console.log(this.user);
    }
}
var b = a.fn;
b.call(a);

// 3

var a = {
    user: "剃了胡子",
    fn: function (e, ee) {
        console.log(this.user); 
        console.log(e + ee); 
    }
}
var b = a.fn;
b.call(a, 1, 2);

// 4

var a = {
    user: "剃了胡子",
    fn: function () {
        console.log(this.user); 
    }
}
var b = a.fn;
b.apply(a);

// 5

var a = {
    user: "剃了胡子",
    fn: function (e, ee) {
        console.log(this.user); 
        console.log(e + ee);
    }
}
var b = a.fn;
b.apply(a, [10, 1]);

// 6

//注意如果call和apply的第一个参数写的是null,那么this指向的是window对象
var a = {
    user: "剃了胡子",
    fn: function () {
        console.log(this); 
    }
}
var b = a.fn;
b.apply(null);

// 7

var a = {
    user: "剃了胡子",
    fn: function () {
        console.log(this.user);
    }
}
var b = a.fn;
b.bind(a);

// 8

var a = {
    user: "剃了胡子",
    fn: function () {
        console.log(this.user);
    }
}
var b = a.fn;
var c = b.bind(a);
console.log(c); 

// 9

var a = {
    user: "剃了胡子",
    fn: function () {
        console.log(this.user); 
    }
}
var b = a.fn;
var c = b.bind(a);
c();

// 10

var a = {
    user: "剃了胡子",
    fn: function (e, d, f) {
        console.log(this.user); 
        console.log(e, d, f); 
    }
}
var b = a.fn;
var c = b.bind(a, 10);
c(1, 2);

大家用了多久做完的呢?

相关文章

网友评论

      本文标题:this指向练习题(二)

      本文链接:https://www.haomeiwen.com/subject/etgawftx.html