这个代词this的指代对象究竟是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计260个文字,预计阅读时间需要2分钟。
特别之处在于对绑定后的参数可以调用绑定前函数的方法/方式 // 1. 函数调用模式 // 当一个函数不是一个对象的属性时,当作为对象的方法来调用时,这是函数内部的this指向全局对象(多数是window)this.value
// 1.函数调用模式 // 当一个函数不是一个对象的属性时, 当作函数来调用,这是函数内的this指向全局对象(多数是window) window.value = 1; function getValue(){ console.log(this.value) } getValue(); // 2方法调用模式 // 当一个函数是一个对象的属性时,我们称它为该对象的一个方法, // 当一个方法被调用时.this指向该对象 var Obj ={ value:2, getValue:function(){ console.log(this.Value) } } // 3构造器调用模式 // 使用new调用的函数称为构造器函数,此时的this指向该构造器函数实例出来的对象 function main(val){ this.value = val; } main.prototype.getValue = function(){ console.log(this.value); } var fun = new main(3); fun.getValue(); fun.value; // 4.apply/call调用模式以及bind // aplly/call/bind 方法可以让我们设定调用者中的this指向谁 function showValue(){ console.log(this.value); } var obj ={ value:4 } showValue.call(obj) //this指向obj, 这句话相当于obj调用了showValue这个方法
本文共计260个文字,预计阅读时间需要2分钟。
特别之处在于对绑定后的参数可以调用绑定前函数的方法/方式 // 1. 函数调用模式 // 当一个函数不是一个对象的属性时,当作为对象的方法来调用时,这是函数内部的this指向全局对象(多数是window)this.value
// 1.函数调用模式 // 当一个函数不是一个对象的属性时, 当作函数来调用,这是函数内的this指向全局对象(多数是window) window.value = 1; function getValue(){ console.log(this.value) } getValue(); // 2方法调用模式 // 当一个函数是一个对象的属性时,我们称它为该对象的一个方法, // 当一个方法被调用时.this指向该对象 var Obj ={ value:2, getValue:function(){ console.log(this.Value) } } // 3构造器调用模式 // 使用new调用的函数称为构造器函数,此时的this指向该构造器函数实例出来的对象 function main(val){ this.value = val; } main.prototype.getValue = function(){ console.log(this.value); } var fun = new main(3); fun.getValue(); fun.value; // 4.apply/call调用模式以及bind // aplly/call/bind 方法可以让我们设定调用者中的this指向谁 function showValue(){ console.log(this.value); } var obj ={ value:4 } showValue.call(obj) //this指向obj, 这句话相当于obj调用了showValue这个方法

