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

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <script type="text/javascript">
    function box(num1,num2){
    return num1+num2; //普通函数声明方式
    }
    alert(box(1,2));

    var box=function(num1,num2){
    return num1+num2; //使用变量初始化函数
    }
    alert(box(1,2));

    var box=new Function('num1','num2','return num1+num2');
    alert(box(1,2)); //使用new的构造函数来声明


    //函数可以传递函数


    //下面的例子很普通,不是作为函数来传递的,而是作为函数的返回值来传递的
    function box(sum,num){
    return sum+num;
    }
    function sum(num){
    return num+10;
    }

    var result=box(sum(10),10); //sum(10)这里传递的是函数的返回值,和普通的变量一样,没区别
    alert(result);//30


    //要把函数本身作为参数传递,而不是函数的结果
    function box(sum,num){
    return sum(num);
    }
    function sum(num){
    return num+10;
    }
    var result=box(sum,10);//这个sum是一个函数,当作参数传递到另一个函数里,而不是函数的返回值。
    alert(return);//20

    function box(num){
    if(num<=1){
    return 1;
    }else{
    return num*arguments.callee(num-1);//4*3*2*1=24阶乘,递归
    } //使用callee调用自身,实现递归
    }
    alert(box(4));

    var color="红色的"; //这里color就是全局变量,而这个变量又是window的属性

    var box={
    color:"蓝色的",
    sayColor:function(){
    alert(this.color); //这里的color是box下得属性,也就是局部变量
    //这里this,我们确定是代表的box对象
    }
    }
    alert(this.color); //红色的
    box.sayColor(); //蓝色的


    function box(name,age){
    return name+age;
    }
    alert(box.length);


    function box(num1,num2){
    return num1+num2;
    }
    方法一: function sum(num1,num2){//apply和call可以冒充另外一个函数
    return box.apply(this,[num1,num2]);//this表示window作用域,【】表示传递的参数
    }

    方法二: function sum(num1,num2){
    return box.apply(this,arguments);//这个可以当数组传递
    }
    //alert(box(10,10)); //20
    alert(sum(10,10)); //20

    function box(num1,num2){
    return num1+num2;
    }

    function sum(num1,num2){
    return box.call(this,num1,num2);//call只是传递参数不同,其他和apply一样
    }
    alert(sum(10,10));


    var color="红色的";
    var box={
    color:'蓝色的'
    }
    function sayColor(){
    alert(this.color);
    }
    sayColor(); //全局
    //用call是实现对象冒充,冒充box下,冒充window下
    sayColor.call(window); //冒充window红色的
    sayColor.call(box); //冒充box,作用域就在box对象里面,所以color就是蓝色的


    </script>
    </body>
    </html>

  • 相关阅读:
    mysql5.7初始化密码报错 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before
    Http2和Http1.X的区别
    gitlab的搭建
    nginx的四层负载均衡和七层负载均衡的区别
    阿里云NAT网关配置
    docker-compose的最简单安装方式
    最快的安装 jdk8的方法
    centos6上搭建gitlab
    大牛讲解信号与系统以及数字信号处理
    【推荐图书】+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等
  • 原文地址:https://www.cnblogs.com/luoguixin/p/6147916.html
Copyright © 2011-2022 走看看