活动对象:简单说就是这个函数的参数和显示声明的变量或函数。

函数内接受的参数实际是创建了一个局部变量:【形参名】 = 【传进来的值】,js的函数传参只传值。

作用域链:执行流进入一个函数,会先创建出作用域链来,作用域链大概就是这样

  本函数的活动对象--->父函数的活动对象--->父函数的父函数的活动对象--->父函数的父函数的父函数的活动对象--->直到全局活动对象【全局没有参数】

按值传递:js中参数是按值传递的,对基本类型好理解,函数内不能修改函数外的变量;

var a = 10;
function fn(a){
a = 100;
} console.log(a); //undefined

对于引用类型就不好理解,如果传一个值为对象的变量给函数,函数内部还是可以修改这个对象的属性,但不能重赋值

  

var b = {
q:10
} function fn(b){
b.q = 20;
b = new Object();
b.q = 100;
} fn(b);
console.log(b.q);

理解:所谓传值就是说传【右值】,a = 10的右值就是10;

   对于对象,代码中new了一个对象,堆中就划分了一块区域属于这个对象,然后返回指针地址  --->  var a = new Object();  new Object()是告诉浏览器“我要一块地”,浏览器划     分好后把地址告诉a“这块地在0x12345678”,于是var a = 0x12345678,每次操作这个对象【例如:a.name = '蜜蜂老牛黄瓜'】就是顺着这个地址去到内存中操作( 便于理解 )的。

  然后如果把【a】传给【fn(a)】(强调:传参只传值,右值),就是传了0x12345678给函数,这应该就是《高程》上说的传值,这就解释上门的代码为什么可以 b.q = 20; 修改到外面的变量,因为它是顺着地址去到内存中操作的;而因为函数内部的形参是局部变量的左值,实参是右值,所以 b = new Object();  就是把右值改了,操作b就相当于操作这个右值,这个新的b会在函数执行完毕后立即销毁。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一切皆对象,对象是属性的集合,对象是由函数创建的,函数也是对象。

理解:只要是属性的集合就可以说它是对象,函数天生自带一个属性,这个属性的值是个对象( 另一个属性的集合 ),这个对象一开始只有一个属性,这个属性指向函数本身。

  所以 typeof  function的时候看的是这个函数的原型的属性的对象的第一个属性的值,函数本身,所以返回function;typeof 其他的对象可能,其他对象的原型里面有一些可以让typeof识别的,所以返回object。

js_笔记_8月7日记录_活动对象_作用域链_按值传递的更多相关文章

  1. linux 进阶命令笔记(12月26日)

    1. df 指令 作用:查看磁盘空间 用法: #df -h       -h 表示以可读性较高的形式展示大小   2.free 指令 作用:查看内存使用情况 语法:#free -m       -m表 ...

  2. 4月11日 python学习总结 对象与类

    1.类的定义 #类的定义 class 类名: 属性='xxx' def __init__(self): self.name='enon' self.age=18 def other_func: pas ...

  3. 《高级软件测试》web测试实践--12月31日记录

    今日的任务进度如上图所示.我们对华科软件学院和计算机学院的网站进行了对比分析,分析的角度包括基本功能分析.前端性能分析.用户调研等.在这里我们简单总结下我们得到的评测结果. 基本功能分析:计算机学院和 ...

  4. 《高级软件测试》web测试实践--12月30日记录

    考完数学,我们正式开始web测试实践的作业,今天,我们主要进行了方案的选择和人员的分工.任务计划和安排如上图所示. 任务进展:完成题目选择和人员分工: 遇到问题:暂无: 下一步任务:完成软件评测.用户 ...

  5. 11月28日 记录一个错误❌,看ruby on rails --active support core extensions--present? && presence && duplicable?

    ❌错误 1. @job.resume.count: 提示❌   undefined method `resume' ✅: @job.resumes.count  //解释:调出某一个job的所有简历, ...

  6. 西安OpenParty11月29日活动高清图文回顾——新增西安APEC蓝美图!

    本次活动由西安OpenParty负责线下活动组织运营,线上由InfoQ-QClub.OSChina协办. OSChina活动召集帖:运维为王——应用系统.DevOps与Docker(11月29日) I ...

  7. 2013年9月29日 iOS 周报

    新闻 Apple Tech Talks 2013 在中国上海的iOS Tech Talks活动将于11月12日展开,活动主要针对iOS 7.活动分为App开放日和游戏开放日,主要内容可查看链接.当你看 ...

  8. JavaScript学习笔记——JS中的变量复制、参数传递和作用域链

    今天在看书的过程中,又发现了自己目前对Javascript存在的一个知识模糊点:JS的作用域链,所以就通过查资料看书对作用域链相关的内容进行了学习.今天学习笔记主要有这样几个关键字:变量.参数传递.执 ...

  9. 2016年2月16日开始,每天一篇,记录学习心得,【基本技能篇】>>开篇《如何阅读一本书——心得》

    如何阅读一本书——心得 ——2016年2月12日 要达到阅读的所有目的,就必须在阅读不同书籍的时候,运用适当的不同速度.读的太快或太慢,都一无所获. 四个阅读层次:①基础阅读,具有基本阅读的能力,包括 ...

随机推荐

  1. Excel 如何固定表头

    Excel 如何固定表头 视图-冻结窗格-冻结首行 EXCEL如何设置固定表头 一.首先打开Excel表格,如果你的表头只有一行,那么直接选择"视图-冻结窗格-冻结首行"就可以了. ...

  2. Apple Support

    Apple Support Send Files to Apple Support https://gigafiles.apple.com/#/customerupload refs 无法截屏 bug ...

  3. web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造)

    web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造) XSS(跨站脚本攻击)和CSRF(跨站请求伪造) Cross-site Scripting (XSS) h ...

  4. HTML5 Animation Creator | Hype 官方文档

    HTML5 Animation Creator | Hype 官方文档 HTML5 Animation Build 7个 专业术语 场景,元素,属性,关键帧,动画,时间线,操作 Hype 官方文档 h ...

  5. Service Worker in Action

    Service Worker in Action https://caniuse.com/#feat=serviceworkers Service Workers 1 W3C Candidate Re ...

  6. Taro 版本

    Taro 版本 https://taro-docs.jd.com/taro/versions.html 1.x 1.3.34 https://taro-docs.jd.com/taro/docs/1. ...

  7. Flutter: SearchDelegate 委托showSearch定义搜索页面的内容

    API class _MyHomeState extends State<MyHome> { List<String> _list = List.generate(100, ( ...

  8. 五分钟快速上手MyBatis

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射. 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作. 可以通过简单的 XML 或注解来配置和映射,Ja ...

  9. 记一个关于std::unordered_map并发访问的BUG

    前言 刷题刷得头疼,水篇blog.这个BUG是我大约一个月前,在做15445实现lock_manager的时候遇到的一个很恶劣但很愚蠢的BUG,排查 + 摸鱼大概花了我三天的时间,根本原因是我在使用s ...

  10. 关于Java中的对象、类、抽象类、接口、继承之间的联系

    关于Java中的对象.类.抽象类.接口.继承之间的联系: 导读: 寒假学习JavaSE基础,其中的概念属实比较多,关联性也比较大,再次将相关的知识点复习一些,并理顺其中的关系. 正文: 举个例子:如果 ...