亲爱的小伙伴们,大家都知道在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);
大家用了多久做完的呢?
网友评论