zoukankan      html  css  js  c++  java
  • Function对象属性和方法

    /*
    var pattern = /^[w]+.(zip|rar|gz)$/;            //|选择符必须用分组符号包含起来
    var str = '123.7z'; 
    alert(pattern.test(str));
    
    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');            //使用new的构造函数来声明函数
    alert(box(1, 2));
    alert(typeof box);
    
    //函数可以传递函数,
    
    //下面的例子很普通,不是作为函数来传递的,而是作为函数的返回值来传递的
    
    function box(sum, num) {
        return sum + num;
    }
    
    function sum(num) {
        return num + 10;
    }
    
    var result = box(sum(10), 10);        //20,10sum(10)这里传递的是函数的返回值,和普通的变量一样,没区别
    alert(result);
    
    */
    
    //要把函数本身作为参数传递,而不是函数的结果
    
    
    function box(sum, num) {
        return sum(num);
    }
    
    function sum(num) {
        return num + 10;
    }
    
    var result = box(sum, 10);                //这里sum是一个函数,当作参数传递到另外一个函数里,而不是函数的返回值
    alert(result);
    /*
    function sum(num) {
        if (num <= 1) {
            return 1;
        } else {
            return num * sum(num-1);                //4 * 3 * 2 * 1 = 24 阶乘,递归
        }
    }
    
    
    alert(sum(4));
    
    
    function box(num) {
        if (num <= 1) {
            return 1;
        } else {
            return num * arguments.callee(num-1);                //使用arguments.callee,调用自身,实现递归
        }
    }
    
    
    alert(box(4));
    
    
    //window是一个对象,而且是JS里面最大的对象,是最外围的对象
    
    
    //alert(typeof window);        window是对象,类型是对象,window表示全局
    
    alert(this);            //[object Window] this目前表示的是window,因为在window的范围下
    alert(typeof this);    //和window一模一样,所以this就是window
    
    var color = '红色的';            //这里color就是全局变量,而这个变量又是window的属性
    //alert(window.color);            //这里已经很好的说明color是window下的属性
    alert(this.color);                //同上
    
    window.color = '红色的';        //相当于 var color = '红色的';???,是一样的
    
    
    var box = {
        color : '蓝色的',                //这里的color是box下的属性,也就是局部变量
        sayColor : function() {
            alert(this.color);            //这里this,我们确定了是代表的box对象。
        }
    };
    
    alert(this.color);
    box.sayColor();
    
    window.color = '红色的';
    
    function sayColor() {
        alert(this.color);            //所以这里执行的时候是动态的,第一次在window下,第二次在box下
    }
    
    sayColor();                        //这里调用sayColor,其实范围还是在window下
    
    var box = {
        color : '蓝色的'
    };
    
    
    box.sayColor = sayColor;    //这段代码相当于47行
    
    box.sayColor();                //这里执行的是box里面的this.color
    
    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 sum2(num1, num2) {
        return box.apply(this, arguments);            //这个可以当数组传递,arguments
    }
    
    //alert(box(10,10));
    
    //alert(sum(10,10));
    alert(sum2(10,10));
    
    
    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(this);                    //this就是window
    sayColor.call(box);                    //冒充box,作用域就在box对象里面,所以color就是蓝色的
    本人无商业用途,仅仅是学习做个笔记,特别鸣谢小马哥,学习了IOS,另日语学习内容有需要文本和音频请关注公众号:riyuxuexishuji
  • 相关阅读:
    Java:API文档;文档注释中的javadoc标记;官方API;自己动手给项目建一个API文档
    Java:配置环境(Mac)——MySQL
    Java:配置环境(Mac)——Tomcat
    Java:配置环境(Mac)——Eclipse;修改JDK版本后,Eclipse打不开
    Java:配置环境(Mac)——JDK
    Git:九、删除项目
    Git:修改Git Bash默认打开位置(win10)
    操作系统:diskpart常用指令(使用diskpart实现分区管理)
    人生第一次离职
    C++ std::thread概念介绍
  • 原文地址:https://www.cnblogs.com/laugh/p/4339683.html
Copyright © 2011-2022 走看看