javaScript Function 函数的相关属性和方法

原创 2016年08月29日 11:38:04

【一】Function 函数的相关属性

          1.length  返回函数定义的参数个数。

        function funcTest(x, y, z) {
            console.log(arguments);
            return x + y + z;

        }
        console.log(funcTest.length); //输出3
           2.constructor  返回创建该对象的构造函数。

        var objFunc = new funcTest(1, 2, 3);
        console.log(funcTest.constructor);
           3 .caller  返回调用当前函数的函数。

        function A() {
            return A.caller;
        }

        function B() {
            return A();
        }

        console.log(B()); //返回B函数
        console.log(A()); //返回 undefined ,因为此时没有外层函数调用 A 函数

            4. arguments

               函数执行时内置的arguments对象,该对象返回该函数的所有参数,是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。

       function argumentsTest() {
            console.log(arguments[2]); //输出 a
            return arguments;
       }
       console.log(argumentsTest(1, 2, 'a', 'v')); //输出 [1,2,"a","v"]
          5.callee

            callee 属性是 arguments 对象的一个成员,该属性仅当相关函数正在执行时才可用,返回当前被调用函数的函数对象.

            以下是利用callee 实现匿名函数的递归调用的例子。

        (
            function(count) {
                if (count <= 3) {
                    console.log(count);
                    arguments.callee(++count);
                }
            }
        )(0);//依次输出0,1,2,3

【二】Function 函数的相关方法

          1.toString()  返回定义该Function对象的字符串。

      function f1(a,b,c){
            return a+b+c;
      }

      console.log(f1.toString());
           2.valueOf()  返回Function对象本身。           
       console.log(f1.valueOf());

           3. call 和 apply 

              调用一个对象的方法,用另一个对象替换当前对象。

              语法 call(thisObj,arg1,arg2,arg3);
              语法 apply(thisObj,[arg1,arg2,arg3])
              它允许将函数的 this 对象从初始上下文变为由 thisObj 指定的新对象。 
              如果没有提供 thisObj 参数,则 global 对象被用作 thisObj。
              call与apply方法唯一不同的地方是,apply的第二个参数类型必须是Array,而call方法是将所有的参数列举出来,用逗号分隔。

       var obg = {
            name:'jun',
            say:function(somebody,age){
                return 'Hello '+somebody+' this is '+this.name+age;
            }
        }
       console.log(obg.say('bobo',10));//输出 Hello bobo this is jun10

       var obg1 = {
            name:'obg1',
        };
       console.log(obg.say.call(obg1,'js',100)); // Hello js this is obg1100
       console.log(obg.say.apply(obg1,['js',100])); // Hello js this is obg1100




















版权声明:本文为博主原创文章,未经博主允许不得转载。

一篇相当不错的js function详解

作者:F. Permadi 英文原文: INTRODUCTION TO JavaScript Functions 中文译文(包括示例):javascript的函数 子乌注:一篇相当不错的func...
  • Lee_Decimal
  • Lee_Decimal
  • 2015年05月22日 15:14
  • 1903

JavaScript中函数的三种定义方法

本文整理了JavaScript中函数定义的三种方法。 函数的三种定义方法分别是:函数定义语句、函数直接量表达式和Function()构造函数的方法。下面依次介绍这几种方法具体怎么实现。 1. 函数定义...
  • crazyorange_shen
  • crazyorange_shen
  • 2017年04月03日 11:51
  • 1225

JavaScript之函数实例属性和类属性

根据函数中声明的方式,函数中变量有3种: 1)        局部变量:在函数中以普通方式声明的变量,包括以var或不加任何前缀声明的变量。 2)        实例属性:在函数中以this前缀修...
  • owen_william
  • owen_william
  • 2016年04月07日 19:25
  • 834

JavaScript函数中的参数类型

JavaScript是一种弱类型语言,由于声明形参无须定义数据类型,所以导致调用这些函数时可能出现问题。 比如: function changeAge(p){ p.setAge(20); ...
  • u012868077
  • u012868077
  • 2016年06月05日 10:03
  • 3718

js中静态方法(属性)、实例方法(属性)、内部方法(属性)和原型的一点见解

属性 1,私有类型 :私有,即只能自己使用,在下面的例子,就是说只能在这个函数里使用这个属性 ( function(){ var a = "私有属性"; alert(a); //私有...
  • panying0903
  • panying0903
  • 2015年12月10日 10:30
  • 4634

JavaScript函数-带参数的函数、带返回值的参数

之前说完函数的定义以及调用,接下来看看带参数的函数以及带返回值的的函数~\(≧▽≦)/~   带参数的函数   之前讲了函数的基本用法,接下来看看带参数的函数。   在函数中,参数可以无限多,函数...
  • jiongyixuan
  • jiongyixuan
  • 2015年12月12日 14:15
  • 17659

JavaScript中String对象常见方法及属性

JavaScript String对象简介在JavaScript,基本数据类型有Number型、String型、Boolean型、Undefined型、Null型、Function型等。String对...
  • a153375250
  • a153375250
  • 2016年03月30日 12:57
  • 1921

JS 基础 —— Function 构造器及其对象、方法

一、基础 Function 是一个构造器,能创建Function对象,即JavaScript中每个函数实际上都是Function 对象。 构造方法: new Function ([arg1[, arg...
  • qq_19865749
  • qq_19865749
  • 2016年10月18日 00:21
  • 2684

访问javascript对象的属性和方法

之前就没认真看过,一直就知道定义一个对象,然后用‘.’操作来访问属性和方法。今天突然看见还有另外一种方法,就认真看了下。 var obj={}; var arr=[]; arr[0]=1,arr...
  • angeljsl
  • angeljsl
  • 2015年10月30日 16:46
  • 1136

JS函数function(event){}在括号内写个event的意思

function(event){} event可有可无,它是一个内置参数,加上它是为了规范 function(a){alert(a)} 当不为event时,a就是你要传递的参数 function(a,...
  • w405722907
  • w405722907
  • 2017年07月30日 15:25
  • 1105
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javaScript Function 函数的相关属性和方法
举报原因:
原因补充:

(最多只允许输入30个字)