模式学习(二)

闭包的作用?匿名函数的作用?很多次面试会被问到:(function(){})()

1. 匿名函数的作用域只能在这个闭包里,但是同时又能访问到外面的变量;

2. 匿名函数里面,我们可以将全局变量当做参数传入,然后使用,相比隐式全局变量,更清晰,更快

var block = (function(){
        var my = {};
        my.name = "Nick";
        return my;
    })();

    var block = (function(my){
        my.add = [12,3,4];
        return my;
    })(block || {});

    console.log(block); // Object {name: "Nick", add: Array[3]}

 

 通常我们申明一个object,可以写 :

var block = block || {};// 这个时候 var 不能去掉 否则报错 ,因为block没有被提前申明,报错 block is not defined!

松耦合扩展:

var block = block || {};
    var block = (function(){
        yy=123;
        var my = {};
        my.name = "Nick";
        return my;
    })();

    var block = (function(my){
        my.add = [12,3,4];
        return my;
    })(block || {});

    var block = (function(my){
        my.addww = "xx";
        return my;
    })(block || {});

    console.log(block); // Object {name: "Nick", add: Array[3]}

    var block = (function(my){
        my.old = my.add;

        my.add = "ss";
        return my;
    })(block);
    console.log(block);

 

 

 

转载于:https://www.cnblogs.com/chuyu/p/3480653.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值