1.6 KiB
1.6 KiB
this
- 总结this的指向的规律
- 改变this指向的方式
- 下面代码的执行结果为
function fn2(){
console.log(this.n)
var n='n'
this.n=10
console.log(n)
}
var obj={fn2:fn2, n:1}
fn2()
obj.fn2()
console.log(obj.n, window.n)
4.下面代码的执行结果为
function f(){console.log(this)}
var obj={
fn: (function(){
console.log(this.f)
// return this.f
})(),
f: function(){console.log(this)}
}
f()
obj.f()
- 下面代码的执行结果为
var n = 10
var obj1={
n:1,
f:function(){this.n++; n=this.n++}
}
obj1.f()
console.log(n)
console.log(obj1.n)
window.setTimeout(obj1.f, 1000)
- 下面代码的执行结果为
console.log(getA)
if('a' in window){
var a = ''
function getA(a){
a = a||this.a
console.log(this.a)
}
getA(a)
}
- 下面代码执行结果为
const obj1 = {
nickName: 'qianguyihao',
age: 28,
};
function fn1() {
console.log(this);
console.log(this.nickName);
}
fn1.call(this);
- 下面代码的执行结果为
var obj1 = {
nickName: 'qianguyihao',
age: 28,
};
function fn1(a, b) {
console.log(this);
console.log(this.nickName);
console.log(a + b);
}
fn1.call(obj1, 2, 4);
9.下面代码的执行结果为
function Father(myName, myAge) {
this.name = myName;
this.age = myAge;
}
function Son(myName, myAge) {
Father.call(this, myName, myAge);
}
const son1 = new Son('hello', 28);
console.log(JSON.stringify(son1));
10.把上面7,8,9 改成apply语法
13.把上面7,8,9 改成bind语法