• 面向对象的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
  • 相关阅读:
    PHP实现简易的模板引擎
    三种实现PHP伪静态页面的方法
    转 php简单伪静态实例
    Function mysql_db_query() is deprecated 错误解决
    PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续
    PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
    mysql添加DATETIME类型字段导致Invalid default value错误的问题
    ASP程序中调用Now()总显示“上午”和“下午”,如何解决?
    解决程序开发中时间格式不对造成的问题
    “隐藏已知文件类型的扩展名”选项失败问题
  • 原文地址:https://www.cnblogs.com/lewayjack/p/6742670.html
Copyright © 2020-2023  润新知