zoukankan      html  css  js  c++  java
  • javascript高级课程-3

     函数表达式

    arguments

    this

    构造方法

    函数表达式

    (function(window,u){//传递undefined
            alert("as");
        })(window);//调用一个函数表达式 匿名函数立即执行 传递全局变量的原因 在没有传递全局变量 在执行过程需要跳到外边寻找耗费时间

    函数运行其内、关键的三个对象
    AO 形成作用域链
    argument 不形成链
    this 形成原型链

    arguments

        (function(window,u){
            var sum=0;
            for(var i=2;i<arguments.length;i++){
                sum+=arguments[i];//不定参数
            }
            console.log(sum);
        })(window,undefined,1,2,1,1,2,12,1,1,1,1,1);

    arguments.callee为函数自身

    console.log((function(window,u){
            if(u>1){
                return u+(arguments.callee)(window,u-1);
            }else{
                return 1;
            }
            
        })(window,100));

    注意区分一下两者区别

    //"use strict"//使用ES6语法要求
        var age=11;
        function  test(){
            this.age=12;
        }
        var s=new test();//此时this为null 当为null时则为window
        //函数内 带有this操作 应该 new 否则会污染全局变量
        console.log(age);

    结果

    //"use strict"//使用ES6语法要求
        var age=11;
        function  test(){
            this.age=12;
        }
        test();//此时this为null 当为null时则为window
        //函数内 带有this操作 应该 new 否则会污染全局变量
        console.log(age);

    结果

    从上面可以看到在不适用ES6语法要求时 直接调用默认为null 此时this为window 污染全局变量 如果用new 则this为创建的对象不会污染全局变量

    var name="webcyh";
        function test(){
            console.log(this.name+"hehe");
        }
        var dog={name:"dog"};
        var cat={name:"cat"};
        dog.intro=test;
        dog.intro();
        cat.intro=dog.intro;
        cat.intro();
        (dog.intro=test)();

    构造方法

    function Cat(name){
            this.name=name;
        }
        var c =new Cat();
        /*
        new 时产生空对象{}
        方法的this指向{}
        {}.name=name;
        
    
        */
  • 相关阅读:
    lvs+keepalived集群架构服务
    GlusterFS分布式存储系统
    Zabbix监控平台(三)生产环境案例
    Zabbix监控平台(二)深入了解
    Zabbix监控平台(一)搭建部署与概述
    Memcached数据库缓存
    Mariadb 基于Mycat实现读写分离
    基于mysqld_multi实现MySQL多实例配置
    tomcat-APR配置及三种工作模式简介
    Session服务器之Memcached与Redis
  • 原文地址:https://www.cnblogs.com/webcyh/p/11391512.html
Copyright © 2011-2022 走看看