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

每日学习:2011.3.3 闭包 动态代理 Map的key

阅读更多
1、闭包:是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。
个人理解:闭包思想主要是函数可以作为一级参数,是一种函数是对象的思想。函数可以作为参数或者返回值使用。
 
   function a(){
     var i=0;
     function b(){
       var j=i; //只要是引用了 i 的。
        alert(j);
     }
     return b;
   }

   var c=a(); 
   c();
   


2、动态代理:为了提供额外的或不同的操作,而插入的用来代替实际对象的对象(中间人的作用)
通常代理类和被代理类实现了相同的借口,在面向借口的调用中隐藏了具体的类型信息。
java的动态代理实现:实现InvocationHandler接口,通过Proxy.newInstance()来实例化。

3、Map的key必须同时覆盖Object的equals()和hashCode()方法
   new LinkedHashMap(16,0.75f,true) =>使用最近最少使用(LRU)算法,最近最少使用的排在前面
  Object默认的hashCode()使用对象的地址生成散列码,equals()也是比较对象的地址
  hashCode()最重要的因素:无论何时,对同一个对象调用都应该生成相同的值

4、如果将自定的类型对象放入HashSet、HashMap、Hashtable、LinkedHashSet、LinkedHashMap这此散列集合时,一定需要重写equals与hashCode方法,这样在放入进去之后还能查找出来。如果放入其他非散列类型的集合时,其实只需要
重写equals就可以了。
分享到:
评论

相关推荐

    Web-前端教程36 JS进阶:闭包.zip

    这个"Web-前端教程36 JS进阶:闭包.zip"文件很可能是对这一主题进行深入讲解的教学资源,其中包含的视频"Web-前端教程36 JS进阶:闭包.mp4"应该详细解释了闭包的工作原理及其在实际编程中的应用。 闭包是JavaScript...

    JavaScript高阶第三天.xmind

    3.严格模式下普通函数的this指向undefined 高阶函数: 满足其中之一即高阶函数: 1.函数作为参数 2.函数作为返回值 闭包: 1.闭包的三个特性: ①函数嵌套函数 ②函数内部访问外部函数的参数或变量 ③可以...

    前端开发面试题含答案.pdf

    4. 闭包 5. 插件 6. 作用域 7. 跨域 8. 原型链 9. 模块化 10. 自定义事件 11. 内存泄漏 12. 事件机制 13. 异步装载回调 14. 模板引擎 15. Nodejs 16. JSON 17. ajax 等 其他方面: 1. HTTP 2. 安全 3. 正则 4. ...

    JavaScript闭包(closure).pdf

    JavaScript中的闭包是一种高级特性,它是函数和其周围状态(词法作用域)的组合,即使函数在其定义的作用域之外被调用,它仍然能访问到这些...通过深入学习和实践,可以更好地运用闭包这一强大的工具来解决复杂的问题。

    ios-switf 闭包与代理.zip

    本资料包“ios-swift 闭包与代理.zip”主要关注两个核心概念:闭包(Closure)和代理(Delegate),这些都是Swift中处理事件和数据传递的关键机制,尤其对初学者来说极其重要。 首先,我们来深入理解闭包。闭包是...

    C C++算法实例.c

    3.计算图的传递闭包 4.无向图的连通分量 A.深度优先 B 宽度优先(种子染色法) 5.关键路径 6.拓扑排序 7.回路问题 9.判断图中是否有负权回路 Bellman-ford 算法 10.第n最短路径问题 三、背包问题 1.0-...

    underscore-source-analysis:Underscore.js原始学习

    2. **数组操作**:包括_.each()遍历数组,_.map()、_.filter()、_.reduce()等函数进行映射、筛选和归约操作,还有_.find()、_.indexOf()等查找功能,它们大大简化了数组的处理。 3. **对象处理**:Underscore.js...

    No.Starch.The.Book.of.Ruby.Jun.2011.rar

    《The Book of Ruby》是由No Starch Press在2011年6月出版的一本关于Ruby编程语言的书籍。Ruby是一种动态、面向对象的脚本语言,由日本人松本行弘(Yukihiro Matsumoto)创建,设计目标是使程序员能够编写简洁而易于...

    testDemo:前端知识点测试工程集

    闭包运用: 4.原生js实现的目标: 5. Nativejs例程操作: 6.正则用法: 7.数组用法: 8.作用域: 9.HTTP状态码: 10.函数用法: 11.原型理解: 12.常见样式布局: 13.事件理解: 14.iframe 15.ajax理解: 16.canvas...

    JavaScript源码.zip

    3. 封装和多态:通过函数和闭包实现封装,通过接口和重写方法实现多态。 DOM操作: 1. DOM(文档对象模型)是HTML和XML文档的编程接口,JavaScript可以用来查找、修改和添加DOM元素。 2. getElementsByTagNam

    gradle-7.6.1-all.zip 快速下载

    3.工具链下载期间构建gradle本身失败:在内复制文件的权限被拒绝。格拉德/jdks 4.用7.6回归:不再找到JVM库项目中的@pom工件 5.删除安全凭据引用 6.由于TestResultProcessor中的签名更改,Kotlin MPP插件在Gradle 7.6...

    SwiftyTimer.zip

    1.hour 你可以传递方法引用,而不用闭包:NSTimer.every(30.seconds, align)如果你想对一个 Timer 对象不进行计划,使用 use new(after:) 和 new(every:):let timer = NSTimer.new(every: 1.second) { ...

    初级前端开发面试题.pdf

    7. key的作用:key的概念和使用场景。 8. 过滤器和mixin的作用:过滤器和mixin的概念和应用场景。 React部分: 1. setState的作用:setState方法的作用和使用场景。 2. 生命周期函数:React组件的生命周期函数和...

    多重尾随闭包带默认值.zip

    在Swift编程语言中,尾随闭包是一种特殊的闭包写法,它允许我们将闭包作为函数的最后一个参数,并且可以将其放置在括号之外,从而提高代码的可读性。在Swift 5.3版本中,引入了一项新规定,即多重尾随闭包必须明确...

    python、lambda表达式的用法举例 .txt 文本格式

    3.赋予key参数使用 4.直接调用 5.闭包中使用 6、其它: 适合人群:初级、中级 python语言学习者 能学到什么:学习python中lambda表达式的语法、各种常见的用法。 阅读建议:大量用例可以直接复制拷贝到IDE中进行测试...

    关系闭包的计算

    本实验旨在通过编程实践的方式帮助学习者深入理解关系闭包的概念,并熟练掌握Warshall算法用于计算关系的自反闭包、对称闭包以及传递闭包。 #### 关键概念解释 1. **自反闭包**:给定集合A上的关系R,如果对于集合...

    Python闭包:深入理解与应用场景解析.zip

    1. **函数工厂**:闭包可以作为参数传递,或者返回,实现动态生成具有特定行为的函数。 2. **数据缓存**:利用闭包可以创建缓存机制,例如,计算斐波那契数列时,可以避免重复计算先前的值。 3. **延迟计算/惰性求...

    php的闭包(Closure)匿名函数详解_.docx

    闭包提供了一种在函数内部访问和修改外部作用域变量的能力,而无需通过全局变量或类成员来实现。这在很多场景下都非常有用,比如事件处理、回调函数、迭代器、计数器等。 闭包的定义非常简洁,通常以`function`...

    蛇:https:reinhardtr.github.iosnake

    8. **闭包**:可能用到闭包来封装游戏状态,保持局部变量不被外部访问或修改。 9. **模块化**:如果项目较大,可能使用模块化技术(如ES6的import/export)来组织代码,提高可读性和可维护性。 10. **响应式设计**...

    闭包.playground.zip

    本教程通过`闭包.playground.zip`文件将带你深入理解Swift中的闭包概念。 闭包的基本语法: 闭包表达式是Swift中定义闭包的简洁方式,其格式如下: ```swift { (parameters) -> returnType in // closure body } `...

Global site tag (gtag.js) - Google Analytics