zoukankan      html  css  js  c++  java
  • javascript权威指南 第8章 笔记 Kevin

    1.“||”运算符 如果||运算符的第一个参数为true,或者是一个可以转换为trued的值,该运算符就会返回其第一个参数。否则会返回第二个参数。例:  a = a||[];如果a已经定义了并且为非null,它则返回a,否则a便是空的。

    2.尽管定义javascript函数时有固定数目的命名参数,但当调用这个函数时,传递给它的参数数目却可以是任意的。arguments对象允许完全地存取那些实际的参数值。arguments对象是一个类似数组的对象。

    关于arguments的一个例子:

    function b(a){

      alert(a);

      arguments[0]=[12,3];

          alert(a);

    }

    b();//undefined,undefined

    b(1);//"1","12,3";

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

    从这个例子中可以看出来1.arguments对象是在有参数传进来的时候才会初始划分配内存的。2.arguments对象有一个非同寻常的特性,当函数具有命名了的参数时,arguments对象的数组元素是存放函数参数的局部变量的同义词。

    3.callee属性

      arguments对象定义了callee属性,用来引用当前正在执行的函数。这个属性没有多大的用处,但它可以用来允许对未命名的函数递归地进行调用 例

        function(x){

          if(x<=1)    return 1;

          return  x*arguments.callee(x-1);

        }

    4.apply()方法和call()方法:apply()方法有两个参数,用作this的对象和要传递个给函数的参数的数组。例如:

    function sayColor(sPrefix,sSuffix) {
        alert(sPrefix + this.color + sSuffix);
    };
    
    var obj = new Object();
    obj.color = "blue";
    
    sayColor.call(obj, new Array("The color is ", "a very nice color indeed."));//最后生成的消息仍是 "The color is blue, a very nice color indeed."

    call()方法是与经典的对象冒充方法最相似的方法。它的第一个参数用作this的对象,其他参数直接传递给函数自身。
    例:
    function sayColor(sPrefix,sSuffix) {
        alert(sPrefix + this.color + sSuffix);
    };
    
    var obj = new Object();
    obj.color = "blue";
    
    sayColor.call(obj, "The color is ", "a very nice color indeed.");//最后生成的消息 "The color is blue, a very nice color indeed."

  • 相关阅读:
    master线程的主循环,后台循环,刷新循环,暂停循环
    InnoDB的后台线程(IO线程,master线程,锁监控线程,错误监控线程)和内存(缓冲池,重做日志缓冲池,额外内存池)
    MySQL的连接方式
    编写高质量的 Java 代码
    TProfiler
    Copy-On-Write容器
    G1 垃圾收集器
    JAVA 虚拟机钩子
    Future和Promise
    算法笔记_134:字符串编辑距离(Java)
  • 原文地址:https://www.cnblogs.com/kfx2007/p/2451761.html
Copyright © 2011-2022 走看看