• javascript——函数内部属性


     1  <script type="text/javascript">
     2         //在函数内部有两个特殊的属性:arguments 和 this。arguments是一个类数组对象,包含传入的所有参数,
     3         //但是这个对象还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。
     4         //请看经典的阶乘函数例子:
     5         function Factorial(num) {
     6             if (num <= 1) {
     7                 return 1;
     8             } else {
     9                 return num * Factorial(num - 1);
    10             }
    11         }
    12 
    13         function Factorial(num) {
    14             if (num <= 1) {
    15                 return 1;
    16             } else {
    17                 return num * arguments.callee(num - 1);
    18             }
    19         }
    20 
    21         //使用第一种方式是没有错的,但是耦合性太高,不太好,函数名改变之后,内部的函数名也要改变
    22         //第二种方式就是低耦合的做法,无论函数名怎么改变都不会影响函数执行。
    23 
    24         //this引用的是函数据以执行的环境对象,或者也可以说是this值
    25         window.color = "red";
    26         var o = {color: "blue"};
    27         function sayColor() {
    28             alert(this.color);
    29         }
    30 
    31         sayColor();//red
    32         o.sayColor = sayColor;
    33         o.sayColor();//blue
    34 
    35 
    36 
    37         //caller属性,保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为Null
    38         function outer() {
    39             innter();
    40         }
    41 
    42         function innter(){
    43             //alert(innter.caller);//耦合性太高
    44             alert(arguments.callee.caller);
    45         }
    46 
    47         outer();
    48     </script>
  • 相关阅读:
    Security+考试通过心得
    Splunk Power User认证
    Splunk笔记
    关于工作
    智能合约安全-parity多重签名钱包安全漏洞
    kickstart构建Live CD 添加文件问题
    Local Authentication Using Challenge Response with Yubikey for CentOS 7
    计算Linux权限掩码umask值
    IntelliJ IDEA 常用快捷键
    关于常量池-----小例子
  • 原文地址:https://www.cnblogs.com/goesby/p/4230350.html
Copyright © 2020-2023  润新知