JavaScript改变this指向的3种方法(代码说明)

来源:互联网 发布:java可变参数不传入 编辑:程序博客网 时间:2024/06/14 16:10

我们用例子来说明问题

隐式转换

var id = 10;function a() {  console.log(this.id);};var obj2 = {    id: 30}var obj1 = {    id: 20}a.call(obj2);//30a.call(obj1);//20//a函数内的this指向随着call的指向而变化

显示转换

var id = 10;function a() {  console.log(this.id);};var obj2 = {    id: 30}var obj1 = {    id: 20}//使用bind之后, 返回的函数内部this定死, 无法再改变thisvar b = a.bind(obj2);//返回一个函数b.call(obj1);//30b();//30

new

function a() {    this.a = 1;    this.b = 2;}var a1 = new a();//this指向对象
原创粉丝点击