exports与module.exports

exports与module.exports

//demo1
exports.name='仙女';
exports.age=10;

console.log(exports);  //Object {name: "仙女", age: 10}
console.log(module.exports); //Object {name: "仙女", age: 10}
console.log(Object.is(exports,module.exports));//true

//demo2
/*
    在没有改变的情况下  默认都是指向空对象的{}
    exports:他不会改变原来的地址 还是会指向{} 空对象
    module.exports.方法名={}  存储会发生一个改变
    module.exports.方法名={}
*/

module.exports={
    name:'小仙女',
    age:10,
    sex:'自己看',
    who:()=>{
        console.log('这都是个啥啊');
    }
}
console.log(exports); //{}
console.log(module.exports);//Object {name: "小仙女", age: 10, sex: "自己看", who: }
console.log(Object.is(exports,module.exports));  //false



//demo3
/*
    先exports  再module.exports
    exports 只是辅助的工具,他是收集属性和方法,赋值给module.exports,可以改变module.exports;
    module.exports不能改变exports的值
    都是指向同一个地址  后面的会覆盖前面的
*/

exports.name='张三';
exports.age=10;

module.exports.name='赵四';
module.exports.age=12;

console.log(exports); //Object {name: "赵四", age: 12}
console.log(module.exports);  //Object {name: "赵四", age: 12}
console.log(Object.is(exports,module.exports)); //true  地址没有改变


//demo4
/*
    先exports暴露
    在module.exports暴露

*/
exports.name='狗东西';
exports.age=30;

module.exports={
    name:'小狗子',
    age:50
}
console.log(exports);//Object {name: "狗东西", age: 30}
console.log(module.exports);//Object {name: "小狗子", age: 50}
console.log(Object.is(exports,module.exports))//false

//demo5
/*
    先暴露module.exports  再暴露exports
    如果module.exports 自己先定义了 并且 自己有  
    后面的exports暴露辅助工具,它收集的属性和方法不起作用

*/

module.exports={
        name:'小花',
        age:10
    }
    exports.name='小草';
    exports.age=20;

console.log(exports);//Object {name: "小草", age: 20}
console.log(module.exports);//Object {name: "小花", age: 10}
console.log(Object.is(exports,module.exports))//false



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值