8.5 作为命名空间的函数

问题:js中无法声明一个代码块内可见的变量。
解决方法:简单定义一个函数用作临时的命名空间。
优点:函数内的变量,不会污染全局命名空间。

把8-3的代码根据自己记忆理解敲了一遍

<!-- extend()拓展函数arguments- length : 2+|- type : object作用:将后面参数的属性,拓展到第一个参数中--><!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title></title>
</head>
<body><script type="text/javascript">var extend = (function(){//如果能在{toString:null}遍历盗toString属性,说明没有这个bug//在ie中,与object中自带属性重名的属性,是无法被遍历的for(var p in {toString:null}){return function extend(o){for(var i = 1; i < arguments.length;i++){var source = arguments[i];for(var prop in source){o[prop] = source[prop];}}return o;}}//下面是存在bug的情况//Object.prototype上的属性不能被枚举//在末尾将这些属性单独拿出来,一一遍历return function patched_extend(o){for(var i = 1; i<arguments.length ; i++){var source = arguments[i];for(var prop in source){o[prop] = source[prop];}for(var j=0;j<protoprops.length;j++){var prop = protoprops[j];o[prop] = source[prop];}}return o;}var protoprops = ["toString","valueOf","constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString"];}());var a = {name:"qix"}, b = {age:12},c = {toString:"这是一个属性"};extend(a,b,c);</script>
</body>
</html>

闭包

这里有篇关于闭包的文章,讲述清晰明了。
http://blog.rainy.im/2015/07/04/scope-chain-and-prototype-chain-in-js/

《权威指南》笔记 -- 8.5 、8.6相关推荐

  1. HTML5与CSS3权威指南笔记案例1

    第1章 <!DOCTYPE html> <meta charset = "UTF-8"> <title> Search </title&g ...

  2. 《Cortex-M3 权威指南 笔记》

    因了命途中的你们,我才没有荒芜了青春. – 莫言 一.介绍 整个 MCU 只有Cortex-M3 处理器内核(中央处理单元(CPU))和调试器是ARM设计的,而存储器,外设,I/O以及其它功能块是芯片 ...

  3. Java性能优化权威指南--笔记

    出处:http://xiongpq.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文 ...

  4. netty权威指南笔记-以回车换行结尾的消息如何处理半包问题

    概述 TCP底层会发生粘包和拆包,这个是TCP的一个特性.为了减少网络数据传输的次数,TCP总是希望让网络数据到达一定量级的时候才将数据发送出去,而不是缓存区一有数据就马上发送数据. TCP底层会根据 ...

  5. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...

  6. Hase权威指南笔记

    第一章 1.1 海量数据的黎明: RDBMS 结构化数据 传统关系型数据库 科德十二定律 [Codd's 12 rules] 满足新的工作负载提出的 列式存储[column-oriented] 大规模 ...

  7. JavaScript 权威指南笔记 - 可选的分号

    分号 只有缺少分号无法正确解析代码的时候会自动添加分号 var a a = 3 => var a; a = 3; var y = x + f (a + b).toString() => v ...

  8. 学习正点原子讲解FreeRTOS中断管理心得和cortex-M3权威指南笔记

    1.一个任务恢复运行: (1)恢复一个任务的运行:将一个任务从挂起态恢复到就绪态,只有通过函数vTaskSuspend()设置为挂起态的任务才能使用vTaskResume()恢复,函数原型为void ...

  9. JS权威指南笔记之数据类型

    1.类型分为原始类型和对象. 2.原始类型有:数字类型,字符类型,布尔,和null undefind. 3.JavaScript里的函数都是真值. 4.函数和通过New关键字创建对象.这个样函数称为构 ...

  10. javascript权威指南——笔记(第十章:正则)

    正则表达式是描述字符模式的对象 为什么使用正则: 1.找数字 1 var str = "12 f13kjm54n43 43k"; 2 var arr = []; 3 4 for(v ...

最新文章

  1. 在linux挂载网络驱动器,利用centos 6.6 搭建iscsi服务器并在centos挂载iscsi网络驱动器...
  2. 独家 | 手把手教你处理数据中的缺失值
  3. 【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
  4. 服务器策略文件,如何解决服务器对文件请求的缓存策略教程
  5. WINCE6.0在控制面板添加控制面板应用程序
  6. Mui Webview下来刷新上拉加载实现
  7. [团队项目]后续安排 Github
  8. 掸邦的首府---东枝【图文】
  9. Matrix工作室第六届纳新AI组考核题(A卷)
  10. 安卓学习-界面-View的自定义
  11. Lombok的@Data生成的hashCode和equals方法坑
  12. java 生成pdf 乱码_利用java处理fop导出pdf的中文乱码问题解决方案
  13. 何小鹏发文力挺李斌:2019年最惨的人
  14. python pdf转html代码_Python3转换html到pdf的不同解决方案
  15. informix sybase数据库下载地址
  16. windows cmd命令行添加mysql环境变量
  17. 如何用Python批量获取生意参谋商品来源信息
  18. e次方用计算机怎么算百分比,e指数计算器
  19. 计算机用户密码开机设置,计算机开机密码和屏保密码设置指南
  20. 传奇开服教程:传奇添加地图花屏原因与解决方法

热门文章

  1. 适合一个人创业比较挣钱的项目
  2. okhttp post请求
  3. QT自定义窗口,可拉伸
  4. 外贸型网站,应该如何做好SEO优化?
  5. 当php懈垢windows通用上传缺陷
  6. 计算机网络安全在电子商务中的应用 魏娟,[网络安全最新技术论文]网络安全技术探究...
  7. 新手上路,如何迅速搭建一套源码系统
  8. java求1000以内所有完数
  9. 有趣的数字环的算法实现
  10. 1625 夹克爷发红包 51HOD