如何在JavaScript中应用

  介绍

如何在JavaScript中应用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

这是一个对象,一般存在于函数中,表示当前函数的执行上下文;

值得一提的是,当函数在执行后,这才有绑定的对象,函数未执行时,这个没有内容

<>强普通函数

普通函数中的,普通函数中这个表的示调用此函数时的对象,如下例:

var  x=11;   var  obj={   ,x: 22日   ,说:函数(){   console.log才能(this.x)   ,}   }   obj.say ();//console.log输出的是22//调用说函数的是对象obj,所以这指代对象obj,输出的就是obj对象里的x值,即22。

<强>箭头函数

箭头函数中的,资料上说的箭头函数内部是没有这个的,也就是说,箭头函数里面的这个会继承自外部的,这下面有个例子,用来详细说明下:

var  x=11;   var  obj={   ,x: 22日   y:这个,//窗   ,说:()=祝辞{   console.log才能(this.x);   ,}   }   obj.say ();//输出的值为11   console.log (obj.y);//输出的值为窗口对象//obj对象中这个指的代的就是窗口,也就是全局环境,因为箭头函数中的这就会就近找到上一个对象中这所指代的对象,从以上例子可以看出来,obj内部属性y就为obj内部这指代的对象,输出是窗口。

由于箭头函数不绑定这个,它会捕获其所在(即定义的位置)上下文的这个值,作为自己的这个值,

1,所以电话()/应用()/bind()方法对于箭头函数来说只是传入参数,对它的这个毫无影响。

2,考虑到这是词法层面上的,严格模式中与这相关的规则都将被忽略。(可以忽略是否在严格模式下的影响)
因为箭头函数可以捕获其所在上下文的这个值所以

function 人(),{,   this.age 才能=,0,,   setInterval(才能(),=祝辞,{   ,,,//,回调里面的,“这个”,变量就指向了期望的那个对象了   ,,,this.age + +;   ,,},3000);   }      var  p =, new 人();

两个例子加深印象

<>强普通函数

var  a=11   function  test1 () {   ,this.a=22;   ,let  b=function () {   console.log才能(this.a);   ,};   ,b ();   }   var  x=new  test1 ();//输出11

为什么会输出11 ?因为普通函数中这个指的向的是调用它的对象,如果没有直接调用对象,会指向未定义或者窗口,一般都会指向窗口,在严格模式下才会指向定义。上述的例子中,并没有明确的调用对象,而普通函数中的这并不会向上继续找对象,所以直接返回窗口。

<强>箭头函数

var 一个=11;   function  test2 () {   ,this.a=22;   ,let  b=()=祝辞{console.log (this.a)}   ,b ();   }   var  x=new  test2 ();//输出22

箭头函数中会往上寻找这个,直到找到所代表的这为止。例子中,构造函数被实例化成为一个对象x, x中那的这个指代的就是对象x本身,所以箭头函数这就代表x对象,x对象内部的一个值为22日,所以输出22。

总结

1,箭头函数中的这是在声明中就定义好了的,而普通函数中的这则是在调用时定义好的。

2,箭头函数不绑定这个,它会捕获其所在(即定义的位置)上下文的这个值,作为自己的这个值。正是因为它没有,所以也就不能用作构造函数。

3,若想改变这指向可以用绑定方法.bind方法在ES5引入,在函数的原型链上,Function.prototype。困境。通过绑定方法绑定后,函数将被永远绑定在其第一个参数对象上,而无论其在什么情况下被调用。

JavaScript是什么

JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,主要用于web的开发,可以给网站添加各种各样的动态效果,让网页更加美观。

关于如何在JavaScript中应用这个问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

如何在JavaScript中应用