zoukankan      html  css  js  c++  java
  • javascript犀牛读书零碎

    o'reilly 犀牛


    -------------------------------------------------------------------------------

    获取对象(比如 var o={x:1,y:2})的信息有一下方法:

    1. 对变量应用 " .constructor"属性或者 " typeof "方法也可以获得关于对象的一些信息;
    2. 反射:利用 for (.. in ..) 实现"反射";有意思的是数组和对象都能把 "." 和 "[]"当作操作符
    style

     ------------------------------------------------------------------------------

     临时对象?对象包装器:

          对象环境 就是需要把一个东西当作有属性有方法的能自我描述的应用上下文,像字符串、数字、boolean三种类型都有所谓的对象包装器,而字符串出现对象环境比较常见;原始字符串值遇到对象环境时,比如求字符串的长度或者子字符串时就会临时创建一个string类来使用,用完了就被抛弃;相应string对象遇到非对象环境时也会临时创建一个字符串值来操作,比如需要两个字符串用 " + "号连接的时候。

    --------------------------------------------------------------------------------

     Eval()函数:

          如果参数不是字符串 则 直接返回参数;如果是字符串,并且字符串作为脚本执行后的返回结果是一个值 则 返回此值,否则 返回undefined;对于对象声明的(比如{c:hello})如果加上"("和")"则返回object。

           如何在全局环境使用局部变量呢?这个要求实在是过分,可能有这样的需求环境,比如wangyij说的情况;解决方法如下:

    X2.Eval()

     ---------------------------------------------------------------------------------

     js变量的作用域:

          看zhangljerry写的《关于js变量的作用域 》,大致总结一下;名字很多 参考其他语言可以减少大脑负担,从javascript源码的词法结构来说:

     变量称呼                        声明方式                                     注意事项

    局部变量                        {}内有效的,var声明的;                 未赋值则返回undefined、不存  在块儿级的变量;


    全局变量                        {}内没用var声明的,全局用var声明的; 

    类变量                           类内的属性、方法都是;                   没什么;

    私有变量                        类内用var声明的变量、匿名函数引用;   比如var func1=function{}、私有方法不能操作非私有变量;

    实例变量                        在实例化以后通过"."操作符新建的变量; 只对该实例可见;

    静态变量                        属于类的,当然也属于它的实例、用this声明的;比如this.name='hzq';

    新的理解或者说新的解释就是: 全局变量是全局对象的一个属性,而局部变量是特殊的调用对象的属性;

    ----------------------------------------------------------------------------------

    关于函数的----隐藏的Argument对象、神奇的prototype属性

         函数调用时可以传递的参数不必拘泥于形参,而非形参的参数值可以通过Argument暂时作为数组时  用下标取得;另外Argument的属性callee是对函数自身的调用,可用于匿名函数,而length属性反应了实际传递参数的个数,Argument.callee.length则是形参的个数;

         每个函数都有call和apply()两个方法,如:function f(x,y){};var c=new bject();f.call(c,x,y);或者f.apply(c,[x,y]);

         prototype是一个类的构造函数被new操作符使用时产生的 对一个对象的引用 作为该构造函数的属性;通过在prototype引用的对象上定义所有该类的实例都拥有的方法和常量值,避免了实例变量和实例方法的大规模复制;

    -------------------------------------------------------------------------------------

         用函数做参数在数组的sort()方法里可以,我想javascript这样没有绝对类型的语言 这种现象会很普遍。

         直接量和构造函数的概念、区别;

        

  • 相关阅读:
    Hibernatede 一对多映射配置
    Hibrenate之事务的理解以及代码编写
    The servlet name already exists.解决方法
    hibernate入门程序
    什么是orm思想?
    Java的MVC模式简介
    JAVA框架之Hibernate框架的学习步骤
    java常见命名规则
    解决get方法提交参数中文乱码问题:
    谈谈对Spring IOC(控制反转)的理解--转
  • 原文地址:https://www.cnblogs.com/hzq3554055/p/1266917.html
Copyright © 2011-2022 走看看