在js中,这是初学者的一个难题。但如果你真的理解,那就没什么问题了。现在我们来谈谈这个。

在js中,这个值取决于所调用的模式(称为对象),js中有4种调用模式:

1。函数调用方式

当一个函数不是一个对象的属性时,它被称为函数,当函数中的这个点指向全局对象(对数是窗口)。


窗口值= 1;
功能getValue(){
console.log(的价值);
}
是(1); / /输出,这个窗口


2。方法调用模式

当一个函数是一个对象的属性时,我们称它为对象的方法,当一个方法被调用时,它指向对象。


var obj = {
值:2,
GetValue:函数(){
console.log(这个值); / /输出2,这个目标
}
}


!!!在这个模式中,当调用该方法时,该对象与对象的绑定发生。

三.构造函数的调用模式

这个函数使用新调用调用构造函数函数,此时这个函数指向构造函数函数实例中的对象。


函数main(瓦尔){
这个值;
}
主。原型。GetValue =函数(){
console.log(的价值);
}

新的主(3);
Fun.getValue();
fun.value; / /输出3,这一点乐趣主要实例


4、应用调用模式和绑定

应用程序、调用和绑定方法允许我们在调用方中设置这一点来指向谁。


功能showvalue(){
console.log(的价值);
}
var obj = {
价值:4
}
showvalue.call(obj) / /输出4,这指出了一个obj对象


新的绑定方法添加在ecma5,和具体用法可以谷歌。下面是这个绑定的用法


功能showvalue(){
console.log(的价值);
}
var obj = {
价值:4
}
无功showvalue2 = showvalue.bind(obj);
(showvalue2) / /输出4,这个目标


绑定有很多方法可以使用它。

以上是老生常谈,JS这个方向,萧边分享了你的全部内容。我希望能给你一个参考,希望你能支持它。