zoukankan      html  css  js  c++  java
  • 面向对象中一丢丢小知识点

    1、使用 Function 创建函数与原来的方式创建函数:

    Function 是使用字符串构建函数, 那么就可以在程序运行过程中构建函数

    将数组形式的字符串, 转换成数组对象

    var arr = ( new Function( 'return ' + str + ';' ) )();

    2、eval();不常用,易受恶意攻击。用()将其转换成表达式,{}不再是语句块,转换成代码块而是对象了

    3、变量名提升:预解析(标记声明)、代码执行、调用

    4、函数声明与函数表达式有区别:函数声明是单独写在一个结构中, 不存在任何语句, 逻辑判断等结构中。(在我看来还有一点就是没有等号)

     

    5、作用域:域表示的就是 范围, 即 作用范围. 就是一个名字在什么地方可以被使用, 什么时候不能使 用

    6、在js中采用词法作用域:词法( 代码 )作用域, 就是代码在编写过程中体现出来的作用范围. 代码一旦写好, 不用执行,作用范围就已经确定好了. 这个就是所谓词法作用域.在 js 中词法作用域规则:1. 函数允许访问函数外的数据.2. 整个代码结构中只有函数可以限定作用域.3. 作用规则首先使用提升规则分析4. 如果当前作用规则中有名字了, 就不考虑外面的名字

    7作用域链: 函数内指向函数外的链式结构.(画图:成员声明)

    8、闭包:有一个具有封闭的对外不公开的, 包裹结构, 或空间。js 中函数可以构成闭包。允许函数访问外部的数据, 外部无法访问函数内部的数据。闭包是为了实现 具有私有访问空间的 函数的

    1. 写一个函数, 函数内定义一个新函数, 返回新函数, 用新函数获得函数内的数据

    2. 写一个函数, 函数内定义一个对象, 对象中绑定多个函数( 方法 ), 返回对象, 利用对象的方法访问函数内的数据

    3如何完成读取一个数据和修改这个数据:get_num:  set_num :function(value){}

    9闭包的性能问题:函数执行需要内存, 那么函数中定义的变量, 会在函数执行结束后自动回收. 凡是因为闭包结构, 被引出的数据. 如果还有变量引用这些数据的话, 那么这些数据就不会被回收.因此在使用闭包的时候如果不使用某些数据了, 一定要赋值一个 null

  • 相关阅读:
    rabbitmq-高级(死信队列)
    rabbitmq-高级(TTL过期时间)
    springboot整合rabbitmq(topic主题模式)
    springboot整合rabbitmq(direct路由模式)
    glide图片加载库
    自己封装的OKhttp请求
    手机上搭建微型服务器
    listview实现点击条目上的箭头展开隐藏菜单。
    recycleview + checkbox 实现单选
    recycleview中使用checkbox导致的重复选中问题
  • 原文地址:https://www.cnblogs.com/wuhui070470/p/5763136.html
Copyright © 2011-2022 走看看