闭包管理器

<script>
var Modules = (function Manager(){
    var modules = {};
    function define(name,deps,impl){
        for (var i = 0 ;i < deps.length;i++){
            deps[i] = modules[deps[i]];
        }
        modules[name] = impl.apply(impl,deps);
    }
    function get(name)
    {
        return modules[name];
    }
    return {

        define:define,
        get:get
    }
})();
Modules.define("bar",[],function(){
    function hello(who)
    {
        return "welcome"+who;
    }
    return {
        hello:hello
    }
})
Modules.define("foo",["bar"],function(bar){
    var nameWho = "Kitty";
    function awesome()
    {
        console.log(bar.hello(nameWho).toUpperCase());
    }
    return {
        awesome:awesome
    }
})
var bar = Modules.get("bar");
var foo =Modules.get("foo");
console.log(
    bar.hello("Kitty")
    );
foo.awesome();
</script>

apply:劫持另外一个对象的方法,继承另外一个对象的属性。
Function.apply(obj,args)能接受两个参数
obj:这个对象代替Function类里的this对象
args:这是个数组,它将作为参数传递给Function(args-arguments)

<script>
    function hello()
    {

        {
            console.log("hello");
        }

    }
    function hi()
    {
        hello.apply(this,arguments);
        console.log("hi");
    }
    var Hi = new hi();
    //hi.apply("hello",[]);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helloworddm

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值