zoukankan      html  css  js  c++  java
  • 201506170744_《JavaScript权威指南(第六版)——函数调用变长实参和可选形参、》(P171-175)

    一. 构造函数调用 (分有无return)

    1. var obj = new Object();

       var obj = new Object;

    这两行代码是等价的;表达式: new Obj.m();中,this指向的并不是Obj!!

    构造函数通常不是用return关键字;

    二. 间接调用

    1.  call();和apply(); 作用:任何对象都可以调用任何方法/

         call();——使用它自有的实参作为函数的实参;

         apply();——以数组的形式传入实参;

    2. 可选参数 : var  a = a || [];

    3. 可变长的实参 : arguments是指向实参的引用;

        例如:

        function add(a,b,c) {

        if(arguments.length != 3) {

          throw new Error("参数实际传入的个数为: " + arguments.length +"个,但是函数定义的形参个数是3个!");

        }else{

          return a + b + c

      }

    };

    add(1,1,2,9);  //Error: 参数实际传入的个数为: 4个,但是函数定义的形参个数是3个!

    3. function add(a,b,c) {if(arguments.length != 3) {throw new Error("参数实际传入的个数为: " + arguments.length +"个,但是函数定义的形参个数是3个!");}else{arguments[0] = null;return a + b + c}}; add(9,1,2);  //结果为 :3。 "9"被置为"null"值;

    4. arguments在严格模式下它不能被赋值,不能作为形参名,被作为了保留字。

    5. 

    前端-语言
  • 相关阅读:
    利用Trace.WriteLine定位难以重现的问题
    技术经验分享
    辞职小记
    残阳如血--读《忆秦娥·娄山关》 有感
    一个简单多线程等待窗口
    [转]Control的Invoke和BeginInvoke
    elk 改为使用 ik 中文分词器
    在 jenkins 的 pipeline 中使用分支参数
    centos8 下删除网桥 docker0
    vscode 实现组件之间的跳转
  • 原文地址:https://www.cnblogs.com/beesky520/p/4582353.html
Copyright © 2011-2022 走看看