zoukankan      html  css  js  c++  java
  • 面向对象的JS随笔

    Scoping 全局与局部

    全局变量可用在所有环境中,局部变量只可用在局部
    js中连接变量至一个从未声明的变量,后面的变量自动提升成一个全局变量(不要这样用,不易阅读)
    只有function(){中才算局部}
     
    var makearray=fuction(){
        return[];
    };
    var array1=makearray();
    var array2=makearray();
    log(array1===array2);     //will return false.
     
    closures 闭包
     Retaining Access to Functions
    1passing to settimeout
    2returing function from new  fuction
    3saving  function to a global var
     
    将function object 存入array,并且在调用的时候function运行的scope始终在定义的那一层(closure),并且两者互不干扰
    var sagas=[];//function外
    sagas.push(function(){...}); // function内
     
    关键字this
    function使用this时,this代表调用它的那个元素
    function(name1,name2){name1,name2为function内的两个临时变量,调用时赋值}
    当原素没有任何属性可用来调用this时,可以使用.call()将this绑定到元素object上
    SetTimeOut(fn,1000)定时器  如果这个定时fn没有输入的话 可能会输出undefined
    只有在settimeout这个fn里面,调用fn的那一行里绑定原素,this才能够被绑定
    SetTimeOut(object.fn,1000)是无法将this绑定到object上的
    比较好的使用方法是重新写一个fn  如settimeout(function(){ r.method(g.b)},1000)
    使用 new做前缀  系统会自动生成一个新的对象
     
     Prototype Chains 原型链
    var blue = extend({},gold); 初始时拷贝gold的属性,只执行一次 (blue 只有1层 gold值不更新)
    var rose = Object。create(gold);传递gold的属性,先从rose中寻找属性没有再向上一级查找 (gold--》rose 2层 gold值更新)
    所有的原型汇总到一个,然而array有一个大的分支,所以原型分为object和array
     
    code reuse代码的重复利用
    利用obj作为对象代替this(closure方法)减少内存,提高性能()
    批量初始化对象,利用function功能封装属性
    重复功能写成function,然后做成属性调用
     
    构造函数functional classes
  • 相关阅读:
    Path 环境变量
    Scala_ 类_可见性
    ubuntu16.04 注意特别出
    Python基础之文件操作
    python之set集合操作
    python数据类型之字典操作
    python的数据类型之列表list
    Python的条件控制及循环
    使用jmeter做接口测试
    AMD64 专业名词缩写
  • 原文地址:https://www.cnblogs.com/lewayjack/p/6742670.html
Copyright © 2011-2022 走看看