2017-12-18this

一、this

当前的 关键字 函数的拥有者

1.函数中的引用
    var x = 1;
    function test() {
      this.x = 0;  // this==test
  };
  function test1() {
     this.x = 2;    // this ==> test1
  }
  test();
  test1();
  console.log(x)  //==> 2  从上往下按照顺序执行
2.在对象中调用
function test3(){
  return this.a;  //this,指向调用者 obj.action;
}
var obj = {}
obj.a =1;
obj.action =test3;
console.log(obj.action());  //==>1
3.构造函数

this指向实例化以后的对象

function Person(age,name) {
    this.name = name;
    this.age = age;
}
var fun = new Person('xiao1',22);
var fun2 = new Person('xiao2',22);
console.log(fun.name);

例:面试题

var number = 1;
    var object1 = {
        number:2,
        showNumber:function(){
            this.number = 3;
            (function(){
                console.log(this.number);   //==>1
            })();
            console.log(this.number);  //==>3
        }
    };
    object1.showNumber(); 

考点:函数自执行 this指向的是window

你可能感兴趣的:(2017-12-18this)