`
yiminghe
  • 浏览: 1460568 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

简析 闭包,作用域,this

阅读更多
var x=1;
function test() {
   alert(this.x);
   alert(x);
}

function y() {
var z={x:2};
var x=5;
test.call(z);
}

y();
test();


 

运行结果为:2 1 1 1

 

 

1.其中this不固定 ,指的是函数运行时所在的对象 ,obj.func 或 func.aplpy(obj)   this=obj

 

2.而函数里的变量则是指函数定义时作用域内的变量,与调用处无关 ,这就是闭包 closure ,这就是 脚本语言的一个特性,由于 脚本语言本身就是有 一个宿主程序 来解释执行他的 ,故 context 上下文信息 可以由宿主程序跟踪记录 ,随时查询。

 

3.ps: jdk7 据说要 加入 闭包特性

 

 

 

分享到:
评论

相关推荐

    闭包作用域

    ### 闭包作用域 #### 一、JavaScript闭包简介 在JavaScript中,闭包(Closure)是一个非常重要的概念,它允许一个函数访问并操作其外部作用域中的变量,即使该函数在其外部作用域之外被调用。这种特性使得闭包成为...

    基于Python闭包及其作用域详解

    关于Python作用域的知识在python作用域有相应的笔记,这个笔记是关于Python闭包及其作用域的详细的笔记 如果在一个内部函数里,对一个外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被称为闭包...

    JS的作用域与闭包

    ### JS的作用域与闭包 #### 一、作用域的基础概念 作用域是JavaScript中一个非常核心的概念,它定义了变量的可见性和生命周期。在学习作用域之前,我们需要先了解几个基本概念: - **变量**: 在JavaScript中,...

    javascript 闭包、匿名函数、作用域链

    JavaScript中的闭包、匿名函数和作用域链是编程中至关重要的概念,它们是理解JavaScript运行机制的关键。在本文中,我们将深入探讨这三个概念,并通过实际示例来展示它们的运用。 首先,我们来讨论“闭包”。闭包是...

    JavaScript作用域、闭包、对象与原型链概念及用法实例总结

    例如,使用闭包可以避免全局变量污染,利用原型链实现继承,理解作用域可以帮助管理变量生命周期,而正确处理`this`能确保代码逻辑的正确性。实践是检验理论的最好方式,通过编写实际的代码实例,你可以更好地理解并...

    005课-继承作用域闭包.rar

    在JavaScript编程语言中,"继承、作用域和闭包"是三个非常重要的概念,它们构成了JavaScript面向对象特性和函数式编程的核心。在这个005课的主题中,我们将深入探讨这三个概念,理解它们如何协同工作,以及如何在...

    作用域与闭包

    由作用域引出的作用域链的问题, 并在此基础上讨论闭包的问题

    原型、作用域、闭包的完整解释(一)

    在JavaScript编程语言中,原型(Prototype)、作用域(Scope)和闭包(Closure)是三个核心概念,对于理解和编写高效、可维护的代码至关重要。本文将深入探讨这三个概念,并通过实例解析它们的工作原理。 首先,...

    Web前端面试题目JavaScript(作用域,原型。原型链,闭包,封装函数).txt

    前端面试题,包含JavaScript的闭包,作用域,原型,原型链,上下文环境以及DOM,BOM封装函数深度克隆,以及一些常见的·JS问题,试题简单但是容易混淆,作为前端工程师必考题

    深入理解变量作用域

    本文将从JavaScript权威指南出发,深入探讨变量作用域的相关知识点,包括全局作用域、局部作用域、以及闭包等高级概念。 #### 二、全局作用域与局部作用域 1. **全局作用域** - 定义:在JavaScript中,如果一个...

    Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例

    本文实例讲述了Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作。分享给大家供大家参考,具体如下: 实例对象也可以实现闭包的功能,不过实例对象消耗的资源(内存)比闭包多。 demo.py(闭包): # 闭包,...

    学习python中变量作用域及嵌套作用域.pdf

    闭包是 Python 中实现最内嵌套作用域规则的实现方案。 Python 中的变量名赋值会创建或者改变本地变量,全局声明将会给映射到模块文件内部的作用域的变量名赋值。 Python 中的 def、class、lambda 语句可以创建新的...

    第四章示例代码__对象的作用域

    6. **闭包作用域**:在函数内部定义的函数(闭包)可以访问其外部函数的变量,即使外部函数已经执行完毕。这种特性在JavaScript等语言中常见,有助于实现数据隐藏和封装。 了解对象的作用域对于编写高效、安全的...

    JavaScript使用闭包模仿块级作用域操作示例

    JavaScript中的闭包是一种强大的特性,它允许函数访问和修改外部函数的作用域中的变量,即使外部函数已经执行完毕。由于JavaScript不支持块级作用域(如C++或Java中的`{}`),开发者通常利用闭包来模拟块级作用域的...

    深入理解JavaScript作用域和作用域链

    JavaScript作用域是编程中至关重要的...在实际编程中,我们还会遇到闭包、块级作用域(ES6中的`let`和`const`)等更高级的概念,这些都是基于作用域链的扩展,理解它们对于成为精通JavaScript的开发者来说必不可少。

    作用域和闭包知识点文档

    JavaScript作用域与闭包知识点详细说明文档,有相关案例代码,欢迎下载,有问题可留言讨论哈哈哈!

    JavaScript中的作用域链和闭包

    在JavaScript中,作用域和闭包是两个非常重要的概念,它们对于理解和编写高效、可靠的代码至关重要。让我们深入探讨这两个主题。 首先,我们来看一下**作用域**。作用域决定了变量和函数在何处可以被访问。主要有两...

    JavaScript闭包与作用域链实例分析

    本文实例讲述了JavaScript闭包与作用域链。分享给大家供大家参考,具体如下: 闭包定义 闭包指的是有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数A内部创建另一个函数B,那么函数B...

    夯实基础中篇-图解作用域链和闭包.doc

    在JavaScript编程中,作用域链和闭包是两个至关重要的概念,它们对于理解代码执行机制以及函数内部如何访问和管理变量至关重要。让我们深入探讨这两个概念。 首先,**作用域链**是JavaScript中的一种机制,它定义了...

Global site tag (gtag.js) - Google Analytics