JS中this的用法

好久没更新了,最近在忙一个手机网站的页面设计和制作,一直都没有时间更新文章,今天给大家更新下js当中this的用法,这些都是博主以前学习的笔记,大家可以看下,有不正确的可以指正,一起学习,共勉。

在JS当中主要研究的都是函数当中的this
this:在JS中this代表的是当前行为执行的主体;JS中的context代表的是当前行为执行户的环境或者区域
this和context没有必然联系
this是谁和函数在哪定义的以及在哪执行的都没有任何的关系,只和执行主体有关系
区分this:
1、函数执行,首先看函数名之前是否有‘.’,'.'前面是谁this就是谁,没有就是window
2、自执行函数中的this永远是window
3、给元素的某一个事件绑定方法,当事件触发的时候,执行对应的方法,方法中的this是当前的元素
4、在构造函数模式当中this是当前类的实例(var p1=new CJs() this是p1,CJs是类,p1是实例)
5、在原型模式当中this有两种情况,第一个中,在类中,this.xxxx ->this指向当前类的实例
另外一种中,在某一个方法中的this->看执行的时候.前面是谁,this就是谁

实例:

<script>
var num = 20;
var obj = {
num: 30,
fn: (function (num) {
this.num *= 3;//此this.num永远是window下的num
num += 15;//自执行函数私有变量num,num=35
var num = 45;//自执行函数作用域不销毁 num=65得以保留
return function () {
this.num *= 4;
num += 20;
console.log(num);
}
})(num)
}
var fn = obj.fn;
fn();//65(var num =45+ num+=20;)
obj.fn()//85(num=65+20)
console.log(window.num, obj.num);//240(20*(this.num*=3)*(this.num*=4))),120(obj.num=30*(this.num*=4))
</script>
  • 微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

Fakin

评论已关闭。