zoukankan      html  css  js  c++  java
  • 引用类型 ( 对象定义 )——Function 类型

    本文地址:http://www.cnblogs.com/veinyin/p/7607798.html 

    函数实际上是对象,也具有属性和方法,函数名实际上是指向函数对象的指针

    1 function sum(num1,num2){
    2     return num1 + num2;
    3 }

    不用圆括号时为访问函数指针,而不是函数调用,如下例,将 anotherSum 也指向 sum 所指向的函数

    var anotherSum = sum;

    此时若将 sum 赋值为 null, anotherSum 仍能继续访问该函数

    • Function 没有重载

      由于函数其实是指针,若存在两个相同的函数名,则后一个会将先前的函数覆盖掉

    • 函数声明与函数表达式

      • 函数声明: 解析器会率先读取函数声明,并使其在执行任何代码之前可以访问

        1 function sum(num1,num2){
        2     return num1 + num2;
        3 }
      • 函数表达式: 在解析器执行到它所在的代码行,才会真正被解释执行

        1 var sum = function(num1,num2{
        2     return num1 + num2;
        3 }
    • 作为值的函数

       1 function callFunc(func,value1,value2){
       2     return func(value1,value2);
       3 }
       4 
       5 function sum(num1,num2){
       6         return num1 + num2;
       7     }
       8 
       9 var result = callFunc(sum,10,20);
      10 
      11 alert(result);
    • 函数内部属性

      • arguments(实参个数)

        arguments 包含传入函数中的所有参数,同时还包含有一个 callee 属性,指向拥有这个 arguments 对象的函数

      • this

        this 引用的是函数据以执行的环境对象

    • 函数属性和方法

      • 每个函数均有以下两个属性

        • length

          表示函数希望接收的参数个数(形参个数)

          var num = func.length;
        • prototype

          所有实例方法都保存在该属性下

      • 每个函数均有以下两个方法,可用来改变 this 指向

        • apply()

          apply() 方法接收两个参数:函数运行作用域、参数数组,数组可以为 arguments 对象,也可以为 Array 实例

          apply(func,[value1,value2,value3]);
        • call()

          作用于 apply() 函数相同,仅接收参数不同,参数为函数运行作用域、参数,其中参数必须全部列出

          call(func,value1,value2,value3);
    感谢您的阅读及指正,让我们一起进步。
    欢迎联系我交流:veinyin@gmail.com
    作者:VeinYin
    博客地址:https://www.cnblogs.com/veinyin/
    如需转载请注明出处。
  • 相关阅读:
    Javascript文件加载:LABjs和RequireJS
    【译】前端开发者的基本要求
    正则基础之——NFA引擎匹配原理
    JavaScript 设计模式 安全沙箱模式
    jsdoc_toolkit
    JS判断手机浏览器
    JavaScript:Object.prototype.toString方法的原理
    FullCalendar 官方文档翻译2
    浏览器缓存机制
    jQuery.extend 函数详解
  • 原文地址:https://www.cnblogs.com/veinyin/p/7607798.html
Copyright © 2011-2022 走看看