this

this是什么

  • 可以近似地认为,this是所有函数运行时的一个隐藏参数,指向函数的 运行环境
  • 看this指向谁,要看函数运行时所在的对象

不同的情况

  • 构造函数中的this,指的是所要生成的实例对象。
  • 当函数被用作事件处理函数时,它的this指向触发事件的元素

call方法注意点

  • call方法的参数,应该是一个对象(typeof 参数a == "object")

一些题目

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容