this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。

首先,this总是返回一个对象,简单说,就是返回属性或方法“当前”所在的对象。

下面来两个例子来让大家更加直观:

var person = {
name: '张三',
describe: function () {
return '姓名:'+ this.name;
}
}; person.describe()
// "姓名:张三"

  

function f() {
return '姓名:'+ this.name;
} var A = {
name: '张三',
describe: f
}; var B = {
name: '李四',
describe: f
}; A.describe() // "姓名:张三"
B.describe() // "姓名:李四"

看了这两个例子,下面我们来总结下:

全局环境、构造函数、对象的方法,这三种情况this的指向都是不一样的,所以要了解清楚再使用。

最后温馨提示下,不要在函数里面使用多层this

js this的含义以及讲解的更多相关文章

  1. js定时器的使用(实例讲解)

    在javascritp中,有两个关于定时器的专用函数,分别为: 1.倒计定时器:timename=setTimeout("function();",delaytime);2.循环定 ...

  2. (转)js 正则表达式之test函数讲解

    该方法的返回值是布尔值,通过该值可以匹配字符串中是否存在于正则表达式相匹配的结果,如果有匹配内容,返回ture,如果没有匹配内容返回false,该方法常用于判断用户输入数据的合法性,比如检验Email ...

  3. vue.js路由参数简单实例讲解------简单易懂

    vue中,我们构建单页面应用时候,一定必不可少用到vue-router vue-router 就是我们的路由,这个由vue官方提供的插件 首先在我们项目中安装vue-router路由依赖 第一种,我们 ...

  4. js 控制图片大小核心讲解

    控制图片大小的方法有很多,在本文将为大家详细介绍下使用js实现缩放图片,核心代码如下,感兴趣的朋友可以参考下 缩放图片脚本分享 <!DOCTYPE HTML PUBLIC "-//W3 ...

  5. 手淘flexible.js框架使用和源代码讲解

    手淘框架是一个用来适配移动端的js框架,下面我们来讲解一下如何使用手淘的这套框架. 其实手淘框架的核心原理就是根据不同的width给网页中html跟节点设置不同的font-size,然后所有的距离大小 ...

  6. JS系列:数据类型详细讲解

    ctrl+B加粗 ### 数据类型: - 1.number数字类型 NaN:not a number 不是一个数 ,但他是数字类型 isNaN:检测当前值是否不是有效数字,返回true代表不是有效数字 ...

  7. 39 _ 队列5 _ 循环队列需要几个参数来确定 及其含义的讲解.swf

    上面讲解都是循环队列,如果是链表实现的话就很简单,队列只有循环队列才比较复杂 此时队列中只存储一个有效元素3,当在删除一个元素的时候,队列为空,pFont向上移动,pFont等于pRear,但是此时p ...

  8. Node.js 包管理器 NPM 讲解

    包管理器又称软件包管理系统,它是在电脑中自动安装.配制.卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用.对于我们业务开发也很受益,相同的东西不必重复去造轮子. 每个工具或 ...

  9. Js 正则表达式特殊字符含义

    字符   匹配 \o     null \t      制表符 \n     换行符 \v     垂直制表符 \f     换页符 \r     回车符 \xnn   由十六进制nn指定的拉丁字符 ...

随机推荐

  1. [JS]js中判断变量类型函数typeof的用法汇总[转]

    1.作用: typeof 运算符返回一个用来表示表达式的数据类型的字符串.  可能的字符串有:"number"."string"."boolean&q ...

  2. 【ZJOI2012】灾难

    [ZJOI2012]灾难 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,如果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从而引发一系列的生态灾难. 学 ...

  3. 用PHP打造一个高性能好用的网站

    用PHP打造一个高性能好用的网站 1. 说到高可用的话要提一下redis,用过的都知道redis是一个具备数据库特征的nosql,正好弥补了PHP的瓶颈,个人认为PHP的 瓶颈在于数据库,像Apach ...

  4. SQLite也可能出现死锁

    提到锁就不得不说到死锁的问题,而SQLite也可能出现死锁.下面举个例子:连接1:BEGIN (UNLOCKED)连接1:SELECT ... (SHARED)连接1:INSERT ... (RESE ...

  5. windows下python2和python3共享

    其实最好的解决方案使用 virtualenv http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html 不太好的方法,先安装 ...

  6. 关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题

    实际工作当中,经常维护好几个项目的代码,不同项目依赖的TF版本不一致问题.网上找了好多资料,但是每次遇到的问题都不一样,每次都要去查(就是是一样的问题,解决办法也可能会不一样)每次踩坑无数,今天痛定思 ...

  7. [python] RRT快速拓展随机树

    """ version1.1,2018-05-09 <基于智能优化与RRT算法的无人机任务规划方法研究>博士论文 <基于改进人工势场法的路径规划算法研究 ...

  8. 【转】如何判断ARP欺骗?该怎么防护?

    因为在进行通信的时候,数据是通过MAC地址与IP地址的对应关系来进行转发的.若其中MAC地址与IP地址对应的关系出错,就会导致数据错误转发,影响正常通信.通过某种手段,来更改MAC与IP地址的对应关系 ...

  9. javascript中数组化的一般见解

    javascript中数组化的一般见解,数组化浏览器中存在许多类数组对象,往往对类数组操作比较麻烦,没有数组那些非常方便的方法,在这种情况下,就有了数组化方法. 数组化的一般方法 1.第一种也是我们最 ...

  10. AJAX方式发送远程请求报错:No 'Access-Control-Allow-Origin' header

    AJAX GET方式发送远程请求,chrome开发者工具console中报错:XMLHttpRequest cannot load http://www.shikezhi.com/ajax/getDa ...