zoukankan      html  css  js  c++  java
  • 引用reference作用域scope闭包closure上下文context用法

    引用(reference)、作用域(scope)、闭包(closure)以及上下文(context)是JavaScript重中之重的基础,也是学习好JavaScript的基础。在这里我以浅显的理解给大家分享一下:

    一、首先说明下引用(定义):引用是指向一个对象实际位置的指针;

    说明:在这里大家也许这话不大好理解,浅显地说:“引用” = “别名”。(我想)也就是在编程语言给变量、对象…..等起个名称,以便于在需要的时候进行调用。

    变量也是对象,那下面就以变量简单的事例为例

    例如:假如有个变量 a, 想在下次用的时候引用它,给它起个别名 b

     Int a

       Int &b =a//记住:指向 对象实际位置的指针。(嘿嘿如果你对指针很理解,那下面就不用看了,编程嘛,学习不会的知识)


     注意 1:在这里是对变量的引用,内存并不为它开辟实际的内存单元,b对代表同一变量单元,在申明一个引用时,必须同时使之初始化。(只有申明,没有定义,只是申明它和原有的某一变量的关系。在引用时 a 两值同时随之其中之一的变化而变化)。

    注意2:在你申明一个引用后(b,该引用一直与其代表的变量相联系,不能再作为其它变量的别名(一一对应)。

    二、学习了引用,下面理解下引入引用的目的:

    一句话:利用其作为函数的参数,以扩充函数传递数据的功能。(在下一篇文章里详细比较了参数传递的形式)

    在这里出现一个我目前很不明白的现象(希望读者赐教,不胜感激):

     从引用的概念上说是指向对象实际位置的指针;但是在JavaScript里出现了(在C++语言未出现,并且明文规定不可以建立引用的数组)原因(个人):数组名只代表数组的首地址,本身不是一个占有存储空间的变量

    例如:

    ///建立一个数组的对象

    Var items new { items1, items 2, items 3};

    Var itemRef = items;//数组对象的引用

    //将一个元素添加到数组中

    Items.push(“items4”);

  • 相关阅读:
    UVa-272-TEX Quotes
    UVa-10881-蚂蚁
    UVa-1339-古老的密码
    POJ-1328-放置雷达
    POJ-3190-分配畜栏
    Openjudge-2787-算24
    WHYZOJ-#47. 滑行的窗口(单调队列)
    2017年9月16日18:03:54
    WHYZOJ-#93. 暗黑破坏神(垃圾01背包)
    WHYZOJ-#95 大逃亡(二分+BFS)(好题!!!)
  • 原文地址:https://www.cnblogs.com/wwwzzg168/p/3568956.html
Copyright © 2011-2022 走看看