zoukankan      html  css  js  c++  java
  • js 函数

    在javaScript 中函数就是对象,对象是'名/值'对的集合拥有一个连到原型对象的隐藏连接。

    对象字面量产生的对象连接到 Object.prototype。函数连接到 Function.prototype (该原型对象本身连接到Object.prototype)。

    每个函数在创建时会附加2个隐藏属性:函数的上下文实现函数执行的代码(会设置一个调用属性,调用一个函数时,可以理解为:调用此函数的调用属性)。

    函数字面量

      函数通过函数字面量创建:

    var add = function(a,b){
        return a+b;
    }

    函数字面量包含4个部分:

    • 保留字 function
    • 函数名,它可以被省略,函数可以用它的名字递归调用自己,如果没有名字,就称之为匿名函数
    • 在圆括号中的参数,多个参数逗号隔开
    • 包含在花括号中的语句,这些语句是函数的主体。在函数被调用时执行

    调用

      调用一个函数会暂停当前函数的执行,传递控制权和参数和新的函数,处了声明定义时的形式参数(形参),每个函数还会收到2个附加参数: this 和 arguments。

      参数 this 在面向对象编程中非常重要,它的值取决于调用模式,在javaScript 中一共有4中调用模式:方法调用模式函数调用模式构造器调用模式apply调用模式

       方法调用模式

        当一个函数被保存在一个对象属性中,我们称之为方法调用,当一个方法调用时,this会绑定到该对象,方法可以使用this访问自己所属的对象,所以能访问或者修改对象上的属性。

      例如 

    var obj = {
        name: 'zs',
        say: function(){
         this.name = 'ls';
            return this.name;
        }
    }
    obj.say();//ls 

      函数调用模式

        当一个函数并非一个对象属性时,那么它就是当一个函数调用,此模式下,this 会绑定全局对象。

    var num = add(3,4);

      构造器调用模式

        如果一个函数前面带上 new 来调用,那么背地里会连接到该函数的 prototype 成员的新对象,同时this会绑定到新对象上。    

    var a = function(){}
    a.prototype.getName = function(){
        return 'zs';
    }
    var b = new a();
    b.getName();//zs

      apply调用模式

        apply 方法让我们构建一个参数数组传递给调用函数,也允许我们选择 this 的值。apply 方法接收2个参数,第一个是要绑定给 this 的值,第2个就是一个参数数组。

    var arr = [3,4];
    function add (a,b){
        return a + b;
    }
    var sum = add.apply(null,arr);
    console.log(sum);//7
    function a(){
        return this.name;
    }
    var t = {
        name: 'zs'
    }
    var name = a.apply(t);
    console.log(name);//zs

        

  • 相关阅读:
    Unity3d-UI插件EZGUI官方视频教程
    安装安卓模拟器和unity3d插件EZGUI
    NGUI的原理机制:深入剖析UIPanel,UIWidget,UIDrawCall底层原理
    分享我的2014年3月unity3d面试题与参考答案
    WP8持续集成之通过命令行跑单元测试
    深入学习HttpClient(一)扩展额外的功能
    Windows Phone实用教程:利用Blend为程序添加设计时数据
    WP架构设计(一)MVVM回顾
    Windows Phone Unit Test 环境搭建
    Caliburn Micro框架快速上手(WP)
  • 原文地址:https://www.cnblogs.com/bruce-gou/p/10129644.html
Copyright © 2011-2022 走看看