1.this初识
// 情况一
// function Person(name,age){
// this.name =name;
// this.age=age;
// console.log(this)
// }
// var one = new Person("zhangsan",26);//实例化出对象 Person{name:"zhangsan",age:26}
// 情况二
//function Person(name,age){
// this.name =name;
// this.age=age;
// console.log(this)
//}
// Person()//this指向window
A)如果函数作为对象的一个属性时,并且作为对象的一个属性被调用时,函数中的this指向该对象。
eg:
var student={
name:"lisi",
age:12,
say:function(){
console.log(this.name)
}
}
student.say()//lisi、
B)fn函数被赋值到了另一个变量中
eg:
var student={
name:"lisi",
age:12,
say:function(){
console.log(this.name)
}
}
var name="zhangsan";
var aa = student.say;
aa();//zhangsan
eg:
var obj ={
x :10,
fn:function(){
function func(){
console.log(this);//window
console.log(this.x)//undefined
}
func();
}
}
obj.fn();
eg:
var student={
name:"lisi",
age:12,
x:50,
}
var x=10;
var fn = function(){
console.log(this)//student
console.log(this.x)//50
}
fn.call(student);