this问题

(1)this是js的一个关键字,指定一个对象,然后替代this;

函数中的this指向行为发生的主体,函数外的this都指向window,没有意义

(2)函数内的this跟函数在什么环境下定义没有关系,意思就是跟他的作用域没有关系,

而只跟自己执行时候的主体有关

(3)主体:就是看它前面有没有点,有点.就是点前面的对象,没有点.就指向window

(4)自执行函数的时候,里面的this都指向window

(5)给元素中的某一个事件绑定方法,当事件触发时,执行绑定的方法,this就指向当前对象

*当函数套函数时,不要管它怎么定义,而看它执行时候的主体

this面试题

因为执行test()时,前面没有 . 所以,test里的this就指向window,因为x也是window下的变量,所以x就是12

因为执行obj.ss()时,ss就相当于把test这个函数赋给了ss,则ss就是一个函数,然后执行obj下的ss,obj下的x为45,则obj()就是45;

执行obj.ss(),有两个语句,第一个输出 this指向obj,第二个text(),我们就简单理解为,不要看它在谁的环境下,就看

它前面有没有 . ,没有则是window下的,所以执行test(),this.x就指向window下的x,则为12

ss被赋值为obj.dbl obj.dbl就是他在obj下的值,则那个函数,因为赋值给了ss,ss在window下执行的,所以在这个代码块中,第一个输出的this指obj,第二个输出的val是当前下面的val,45;最后一句是this下面的,即window,1*2=2.

10.31JS日记的更多相关文章

  1. 10.24JS日记

    1.函数都有返回值,人为return,返回什么就是什么,否则,他的返回值就是undefined 而方法的本质也是函数,所以也有返回值 document.getElementById()返回的是获取的标 ...

  2. 10.22JS日记

    1.js数据类型分析 (1)基础类型:string.number.boolean.null.undefined (2)引用类型:object-->json.array... 2.点运算  xxx ...

  3. 10.17JS日记

    1.变量提升 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域,叫window, window分为两个模块,一个叫做内存模块,一个叫做运行模块,内存模块找到当前作用域下的 ...

  4. 9.10 h5日记

    9.10 1.什么是属性 属性是表示某些事物的一些特征 2.属性分为标签属性和样式属性,二者的区别在于哪里 标签属性:<img src="01.jpg" width=&quo ...

  5. 10.23JS日记

    1.逻辑运算 ||  &&  ! ||:遇到第一个为true的值就中止并返回 &&:遇到第一个为false的值就中止并返回,如果没有false值,就返回最后一个不是fa ...

  6. 10.19JS日记

    1.函数   关键词(function) var是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成 var可以在内存模块提前完成(js代码执行前),所以有变量提升这个功能 c ...

  7. 10.18JS日记

    1.JS的本质就是处理数据,数据来自后台的数据库,所以变量起到了临时存储的作用, ES制定了js的数据类型 2.数据类型有哪些? (1)字符串 String (2)数字  Number (3)布尔 B ...

  8. 10.16JS日记

    1.parseint() 2.parsefloat() 这两个单词运行的时候遇到第一个非数字就结束了 3.var a="hello word"  a这个变量为字符串,每一个字母为字 ...

  9. 10.9h5日记

    一.单位 1.px是基本的单位,像素 2.em也是一个单位,使用方式,用元素父级的字体大小乘以em前的数字,父级没有就向上一个父级找, 直到body为止,如果body没有,就用默认的字体大小16px ...

随机推荐

  1. linux shell 语法学习

    文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tmp/ ...

  2. RTX二次开发SDK需要注意的地方

    1.如果是ASP.net二次开发调用的,线程池必须开发 Enable 32-bit Applications设置为true. 因为RTX的调用接口很多是32位的.否则会报一下错误 RootObj =  ...

  3. 一: Introduction(介绍)

    Welcome to SQLBackupRestore.com, your online resource for SQL Server backup and recovery issues.  Th ...

  4. shiro 会话管理

  5. JVM 图解--1.6,1.7,1.8

  6. js 事件event

    var EventUtil = { addHandler: function(element,type,handler){ if(element.addEventListener){ element. ...

  7. C#实现将字符串作为表达式运算

    转载:http://blog.csdn.net/lifeforcode/article/details/2010807 曾经有个需求,要把一段字符串作为C#的一段语句来执行.说实在了,就类似实现计算器 ...

  8. MVC001之mvcpager简单分页

    描述:用mvcpager实现简单分页功能 参考网址: http://www.cnblogs.com/iamlilinfeng/archive/2013/03/11/2951460.html http: ...

  9. cxf怎样提高webservice性能,及访问速度调优

    性能: 1. 启用FastInfoset(快速信息集)webservice的性能实在是不敢恭维.曾经因为webservice吞吐量上不去,对webservice进行了一些性能方面的优化,采用了Fast ...

  10. 无法加载DLL"***.dll":找不到指定的模块

    加载dll的路径不对. 绝对路径不合适,可以换成相对路径. 比如: 把dll放入bin目录下的debug或者release下,然后就可以直接“test.dll”了.不用加路径了. 注意:路径必须与发布 ...