this

2017-05-28  本文已影响0人  chengfengwang

this是什么

不同的情况

call方法注意点

一些题目

function f() {
  return '姓名:'+ this.name;
}
var A = {
  name: '张三',
  describe: f
};
var B = {
  name: '李四',
  describe: f
};

A.describe() // "姓名:张三"
B.describe() // "姓名:李四"
//函数作为对象的方法调用,指向对象
var A = {
  name: '张三',
  describe: function () {
    return '姓名:'+ this.name;
  }
};

var name = '李四';
var f = A.describe;
f() // "姓名:李四"
//函数运行时所在环境是window
function Person(name,age){
    this.name=name;
    this.age=age
}
function Student(name,age,sex){
    this  //this绑定对象
    Person.bind(this)(name,age)//执行Person函数,把参数传递进去,只不过this是下面的对象 s
}
var s=new Student('wang',2,'boy')//当new对象的时候,第一步创建空对象第二会执行Student函数,遇到了Person函数,去执行Person函数,这时的this是对象

this在window环境下调用,指向全局变量

var x = 1;
function test(){
  alert(this.x);
}
test(); // 1

作为对象方法调用,指向此对象

var a = {
  name:'wang',
  f:function(){return this.name}
}
a.f() // wang

构造函数里的this zhi'xi

上一篇下一篇

猜你喜欢

热点阅读