• 函数的属性和方法


    一,arguments  he  this ;

      arguments 是一个类数组对象,里保存这函数实际传达的参数。但它不是Array的实例,可以通过方括号访问下标的方法来获取摸一个元素,他也有length属性。并且它的值和对呀参数的值始终保持同步,但它的元素和传递的参数的内存空间是独立的,单是他们的值会同步。

      this  指的是当前函数执行的环境对象,(回调函数没有这东西)不过可以通过其他方法改变函改变  this 指向的值,在全局下,指向的是window,严格模式下全局的this 指的是undefined。

    二,callee ,caller

      函数 里callee 属性其实是一个指针,指向拥有这个函数的arguments对象的函数,arguments.callee  指的就是拥有该arguments 对象的函数,可以在函数内部调用该函数时使用(递归),为了防止紧耦合。

      caller 属性保存着调用当前函数的函数引用。如果过在全局调用当前函数,它的值为null ; 可以通过 arguments.callee.caller  找到调用当前函数的函数;(这两属性在严格模式下会报错)如:

    function outer(){
        inner();
    }
    function inner(){
      arguments.callee.caller;  
    }
    outer();

    三,length  和 prototype。

      length 实际就是定义函数参数(形参)的个数(长度),

      prototype 是保存函数所有实例方法的真正所在,prototype 是不可枚举的,也就无法被for-in 访问到

    四,apply(),  call();

      两个方法实际都是在特点的作用域调用的函数,实际就是设置函数体内,this的值,他们真正强大的地方是扩充函数的作用域

      apply()  接收两个参数,一个是在其中运行函数的作用域,另一个是参数数组。其中第二个可是 Array 数组,也可以是arguments对象

      call()  和 apply()  一样的,第一个参数是函数执行的环境对象,,不同的是第二个参数,call() 必须是必须逐个列举出来,也就是说不能是一个数组,这就导致call() 的参数可能会是很多个,

    function a(num1,num2){
        return num1+ num2;
    }
    function b(num1,num2){
      return a.apply(this,arguments);   //传arguments对象
    }
    function b2(num1,num2){
      return a.apply(this,[num1,num2]); // 传数组
    }
    
    alert(b(10,10))  //20
    alert(b2(10,10))  //20
    function a(num1,num2){
      return num1+num2;  
    }
    function b(num1,num2){
      return a.call(this,num1,num2);
    }
    alert(b(10,10))  //20

    五,bind()  

      bind() 这个方法会创建一个函数的实例,期 this 的值会被绑定到传给bind()函数的值 如:

    window.color = "red";
    var o = { color : "blue"};
    function sayColor(){
      alert(this.color);  
    }
    var obj= sayColor.bind(o);
    obj();  // blue
    

      

  • 相关阅读:
    织梦分页条添加省略号(支持动态静态)
    织梦点击数或者其他数值过【千】过【万】过【亿】的写法
    织梦文章页每个TAG标签单独输出相关文章
    织梦验证码不显示解决方法总结
    织梦搜索结果根据搜索不同栏目显示不同搜索结果模板
    织梦正则提取中英混合字符串中第一个中文汉字
    织梦让内容摘要多行文本支持换行
    织梦dede:tag标签输入添加自增autoindex
    织梦去除底部版权power by dedecms
    织梦自定义表单添加访客提交时间和访客IP+限制每天每个IP提交表单次数
  • 原文地址:https://www.cnblogs.com/xianxiaoan/p/11069107.html
Copyright © 2020-2023  润新知