zoukankan      html  css  js  c++  java
  • 函数内部属性argument,this(读书)

    函数内部有两个对象:argument this .

    argument是一个数组类型对象,包含着传入函数中的所有参数.还有一个名叫callee的属性,该属性是一个指针,指向拥有argument对象的函数.

    阶乘函数

    function factorial(num){

      if(num<1){

        return 1;

      }else{

        return num * factorial(num-1);

      }

    }

    该函数问题:函数名称改了后就会出错,因为这个函数的执行与函数名紧紧耦合在一起

    function factorial(num){

      if(num<1){

        return 1;

      }else{

        return num *argumnet.callee(num-1);

      }

    }

    var Truefactorial = factorial;

    factorial = function(){

      return 0;

    }

    alert(Turefactorial(5))   //120

    alert(factorial(5))   //0

    this:

    window.color = "red";

    var o = {color:"blue"};

    function sayColor(){

      alert(this.color);
    }

    sayColor();  //red

    o.sayColor = sayColor;

    o.sayColor(); //blue

    函数名字仅仅是一个包含指针的变量,即使在不同环境中执行,全局的sayColor()函数与o.sayColor()指向的仍然是同一个函数.

  • 相关阅读:
    BZOJ 1631 Cow Party
    BZOJ 1927 星际竞速
    BZOJ 4059 Non-boring sequences
    BZOJ 1562 变换序列
    BZOJ 4417 超级跳马
    484586
    背板问题之满包问题
    对01背包路径的记录
    带权值的图 BFS
    漫步校园 杭电1428
  • 原文地址:https://www.cnblogs.com/ameiaidaima/p/5830265.html
Copyright © 2011-2022 走看看