1.作用域链

  作用域:浏览器给JS的一个生存环境(栈内存)。

  作用域链:JS中的关键字var 和function 都可以提前声明和定义。提前声明和定义的内容放在我们的

内存地址(堆内存)中。然后JS从上到下逐行执行,遇到变量就去内存地址查找是否存在这个变量。有

就使用,没有就继续向父级作用域查找直到window下结束,这种查找机制叫作用域链。

  JS代码中存在着大量的变量和函数,我们在使用它们的时候一定要知道它们到底归属谁。

2.this

  1)this是JS的一个关键字,指定一个对象然后去替代它。

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

  

  为什么还是window?

  因为浏览器执行JS代码的时候在执行chifan()这个函数的时候查找到变量chifan的归属是window。在

window下的变量可以写成window.chifan函数可以写成window.chifan()。

  2)函数内的this和函数在什么环境下定义没有关系,而只和自己的主体有关。

  3)主体怎么找?

    就看这个函数(方法)带不带“.”(点),如果函数和方法执行带“.”(点),那么this就指向“.”(点)前面的

对象,如果不带“.”就指向window。

  4)自执行函数里面的this都指向window。

  

  this和变量的关系     先找到this的主体是谁,然后把它换成那个主体就行了,this只是代表这个主体

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

  

  重点是函数套函数的时候。

    不要管它怎么定义,看它执行时候的主体。

  案例

  

JS(JavaScript)的进一步了解1(更新中···)的更多相关文章

  1. 百度前端学院js课堂作业合集+分析(更新中...)

    第一课:简陋的登录框 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  2. JS基础知识再整理..........不断更新中

    1.JS的五种基本数据类型:字符串.数值.布尔.null.underfined. 2.在JS中,字符串.数值.布尔三种数据类型,有其属性和方法: 3.字符串的三种常用方法[.indexof()..su ...

  3. JS - 二叉树算法实现与遍历 (更新中...)

    一.关于二叉树: 截图来自:https://segmentfault.com/a/1190000000740261 温馨提示:学习以及使用二叉树概念,心中永远有这么一个图,对于理解和接受二叉树有很大的 ...

  4. html的进一步了解(更新中···)

    (接上一次) 属性:表示事物的一些特征 属性又可分为两种: 标签属性和样式属性 两者的区别: 位置不一样 样式属性写在style中 标签属性写在标签内 写法不一样 样式属性是属性:属性值 标签属性是属 ...

  5. 常用JS、jquery 命令(不断更新中)

    设置用户粘贴板中的文本信息:window.clipboardData.setData('Text', location.href); 获取用户粘贴板中的文本信息: window.clipboardDa ...

  6. CSS的进一步深入(更新中···)

    在之前我们学了6种选择器和三种CSS样式的引入,学习选择器就是为了更好的选择文本,学习CSS的引入是为了使文本增加各种样式和属性, 下面我们简单来学习一下为文本加样式和一些属性和属性值: 1.文本的样 ...

  7. js坑爹笔试题目汇总(持续更新中)

    把你的面试官问倒,你就是一个合格的面试者了,以下总结一些易错的js笔试题目,会持续更新中.欢迎关注 1,考察this var length = 10 function fn(){ alert(this ...

  8. 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

    Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...

  9. JavaScript资源收集分享,持续更新中。。。

    平时收集的一些JavaScript资源,分享给大家 jQuery UI jEasyUI Extensions http://jqext.sinaapp.com 布局做的挺不错,有比较复杂的菜单导航.P ...

  10. gulpfile.js不断更新中...

    Gulp压缩合并js/css文件,压缩图片,以及热更新教程 var gulp = require('gulp');var concat = require('gulp-concat');//- 多个文 ...

随机推荐

  1. 栈->栈与递归

    文字简述 1.阶乘函数 2.2阶Fiibonacci数列 3.n阶Hanoi塔问题 代码实现 // // Created by lady on 19-4-3. // #include <stdi ...

  2. 反射的应用,jdbc封装

    实现在Java中查询数据库并保存在Java中 1.创建Dept类(要查找的类) package cn.ljs; public class Dept { private int deptno; priv ...

  3. Java学习-051-Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError

    错误信息:Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting St ...

  4. Polynomial_0

    @[注]两个一元多项式按照指数由大到小的顺序输入! #include <stdio.h> #define MAXSIZE 50 struct PolyNode { int coeffici ...

  5. php 解密小程序获取unionid

    小程序代码 php代码 public function login2() { $post = input(); if (!empty($post)) { $appid = $this->wxap ...

  6. VisualVM监控远程服务器JVM

    VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...

  7. MySql数据库中,判断表、表字段是否存在,不存在就新增

    本文是针对MySql数据库创建的SQL脚本,别搞错咯. 判断表是否存在,不存在就可新增 CREATE TABLE IF NOT EXISTS `mem_cardtype_resource` ( ... ...

  8. 迷宫问题 (bfs广度优先搜索记录路径)

    问题描述: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, ...

  9. fusioncharts的3D饼图固定大小和角度

    3D饼图的pieRadius和startingAngle属性 pieRadius:饼图的半径 startingAngle:饼图的角度(旋转) 在固定大小的div里面,饼图上如果显示label或者val ...

  10. sqlserver可将字符转成数字再进行sum,如果varchar类型中存放的都是数字

    sqlserver语法: select sum(cast(score as int)) as score from 表名; 注意:int是整型,在实际操作中根据自己需要的类型转换.