JS_15作用域与作用域链

作用域与作用域链

  • 作用域
    • 类别
      • 全局作用域
      • 函数作用域
      • 块作用域:Es6时出现,之前没有
  • 作用域与执行上下文
    • 区别
      • 创建时机不同
        • 全局作用域外,每个函数都有自己的作用域,作用域在函数创建时就创建了,而不是在调用时
        • 全局执行上下文环境是在全局作用域创建之后,js代码执行之前创建的
        • 函数执行上下文是在函数调用时,函数执行前创建的
      • 状态不同
        • 作用域是静态的,只要函数创建了就一直存在,且不变化
        • 执行上下文是动态的,函数调用时创建,调用完释放
    • 联系
      • 上下文对象从属于所在的作用域
 var fu = function(){console.log(fu)}fu()var obj = {fu2 : function(){console.log(fu2)}}
obj.fu2()  //05.js:44 Uncaught ReferenceError: fu2 is not defined/*** 函数作用域在函数创建时就确定了,并且不会改变,* 在show中调用fn,fn与show的作用域也是相互隔绝的*/var x = 10
function fn(x){console.log(x) 
}
function show(f){var x = 20f()
}
show(fn) // 10

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程调用同一个对象的方法_多线程之如何创建和使用线程

一、创建线程和使用线程方式1.1 继承Thread让线程类继承自Thread类,然后重写run(),把需要多线程调用的代码放到run()中。但是需要开启线程的时候不能调用run方法,而是需要调用start()方法。/*** 本类用于演示第一种实现多线程的方式*/ class…

struts2的namespace的问题

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <inc…

JS_16闭包

闭包 什么是闭包 理解1&#xff1a;闭包是嵌套的内部函数理解2&#xff1a;闭包是包含被引用变量&#xff08;函数&#xff09;的对象 闭包产生的条件 函数嵌套子函数调用了父函数的数据父函数被调用了&#xff08;子函数不一定需要被调用&#xff0c;只需要执行函数定义即可&…

[Intel Edison开发板] 02、Edison开发板入门

一、前言 Start from the link: 开始学习的链接 上面链接是官网的教程&#xff0c;按照教程可以开发板入门&#xff1a; 其中第一步是了解开发板&#xff0c;涉及到如何组装、如何连线、一些主要的接口简单介绍等信息&#xff1b;第二步主要是介绍如何用官方提供的工具进行配置…

python apscheduler一次只有一个job_Python使用APScheduler实现定时任务过程解析

前言APScheduler是基于Quartz的一个Python定时任务框架。提供了基于日期、固定时间间隔以及crontab类型的任务&#xff0c;并且可以持久化任务。一、安装APSchedulerpip install apscheduler二、基本概念APScheduler有四大组件&#xff1a;1、触发器 triggers &#xff1a;触发…

java web service简单示例

http://www.iteye.com/topic/1135747 转载于:https://www.cnblogs.com/fycct/p/5669420.html

shell统计指定目录下所有文件类型及数量

#!/bin/bash#Synopsis:用于统计脚本当前所在目录或者用户指定目录下的所有文件类型及数量#若直接运行脚本而不接任何命令行参数,则默认会统计脚本所在目录下的文件#Date:2016/10#Author:Jian#Usage:sh fileStat.sh /path1 /path2testFile$(mktemp /tmp/testfile.XXX)#如果没有指…

python cross val score_sklearn函数:cross_val_score(交叉验证评分)

sklearn.model_selection.cross_val_score(estimator,X,yNone,*,groupsNone,scoringNone,cvNone,n_jobsNone,verbose0,fit_paramsNone,pre_dispatch2*n_jobs,error_scorenan)前面我们提到了4种分割数据集的方法&#xff0c;在分割完数据集后&#xff0c;我们训练模型&#xff0…

JS_17 ES5,ES6

ES5 严格模式 定义方法 use strict特性&#xff1a; 必须使用var定义变量存在eval作用域禁止自定义函数中的this指向window对象不能有重名属性 JSON对象 json.stringify(obj/arr):js对象转换为json对象json.parse(str):json对象转换为js对象 Object拓展 Object.create(p…

几种纯css布局的导航栏

1.垂直导航栏 页面效果 <ul class"nav"><li><a href"home.htm">Home</a></li><li><a href"about.htm">About</a></li><li><a href"services.htm">Services</a&…

python中函数的参数传递(传值还是传引用)

函数的参数传递 函数参数传递有两种方式&#xff0c;传值和传引用&#xff0c;传值只是把变量的值复制一份给了实参&#xff0c;函数内部的操作不会改变函数外部变量的值&#xff0c;而传引用传递的是外部变量的地址&#xff0c;函数内部直接操作函数外部变量的储存空间&#…

poi获取有效单元格个数_EXCEL利用SUM函数和FREQUENCY函数数组公式统计不同区间数据个数...

EXCEL函数公式大全之利用FREQUENCY函数数组公式统计不同区间数据个数。EXCEL函数与公式在工作中使用非常的频繁&#xff0c;会不会使用公式直接决定了我们的工作效率&#xff0c;今天我们来学习一下提高我们工作效率的函数FREQUENCY函数和数组公式。今天我们的例子是统计学生在…

windows安装rsync

客户端&#xff1a;cwRsync 4.0.5 Installer服务端&#xff1a;cwRsyncServer 4.0.5 Installer 安装配置Rsync服务端 1.直接双击安装包安装即可&#xff0c;在安装过程中会有要求用户输入账户密码或者使用默认。此账户是rsync服务运行的用户。 2.安装完成之后&#xff0c;进入程…

洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理

题目描述 在本题中&#xff0c;格点是指横纵坐标皆为整数的点。 为了圈养他的牛&#xff0c;农夫约翰&#xff08;Farmer John)建造了一个三角形的电网。他从原点&#xff08;0,0&#xff09;牵出一根通电的电线&#xff0c;连接格点(n,m)&#xff08;0<n<32000,0<m&l…

Python元类(type()和metaclass)

1. 元类是什么 众所周知&#xff0c;对象由类实例化而来&#xff0c;类是对象的模板&#xff0c;而python一切皆对象&#xff0c;类也是对象&#xff0c;它由元类&#xff08;type&#xff09;创建&#xff0c;所以元类是类的类&#xff0c;是类的模板 2. 创建类的另一种方法…

word文档打印 自动编码_办公室文件打印有哪些技巧 办公室文件打印技巧介绍【图文】...

办公室文件打印实用技巧三则一. 打印文件直接装订——逆序打印相信使用Word打印过长篇文档的朋友一定都清楚&#xff0c;打印完成后的装订一直是个麻烦事儿&#xff0c;因为文件由打印机打出时&#xff0c;第一页肯定会在最下面&#xff0c;装订之前总要费时费力的把纸张按顺序…

Strategy 策略模式

意图 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 动机 策略模式为了适应不同的需求&#xff0c;只把变化点封装了&#xff0c;这个变化点就是实现不同需求的算法&#xff0c;但是&#xff0c;用户需要知道各种…

python 消息中间件_消息队列中间件 RabbitMQ 详细介绍——安装与基本应用(Python)...

RabbitMQ 是当前最流行的消息中间件(Message Broker)之一&#xff0c;支持多种消息协议(如 AMQP、MQTT)。同时它也是一个轻量级的非常易于部署的开源软件&#xff0c;可以运行在当前大多数操作系统及云端环境中&#xff0c;也能够部署在分布式的集群环境里以达到高可用、可伸缩…

用 Flask 来写个轻博客 (1) — 创建项目

目录 目录前言扩展阅读部署开发环境创建 Github 项目前言 一步一步的实现一个 Flask 轻博客项目启动&#xff0c;最新的代码会上传到 Github。 扩展阅读 欢迎使用 Flask — virtualenv 部署开发环境 连接 GitHubhostnamectl set-hostname flask-dev # 设置 hostname ssh-keyg…

python静态方法,类方法,属性方法,实例方法

DAY 3. 静态方法&#xff0c;类方法&#xff0c;属性方法&#xff0c;实例方法 有四种方法&#xff0c;实例方法&#xff0c;类方法&#xff0c;静态方法&#xff0c;属性方法 实例方法 实例方法的第一个参数是self&#xff0c;他会指向类的实例化对象&#xff0c;只能被对象…