Node里window=this & window=global差别
console.log(global)
输出:
<ref *1> Object [global] {
global: [Circular *1],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setInterval: [Function: setInterval],
setTimeout: [Function: setTimeout] {
[Symbol(nodejs.util.promisify.custom)]: [Function (anonymous)]
},
queueMicrotask: [Function: queueMicrotask],
clearImmediate: [Function: clearImmediate],
setImmediate: [Function: setImmediate] {
[Symbol(nodejs.util.promisify.custom)]: [Function (anonymous)]
}
}
console.log(this)
输出:
{}
this
在Nodejs
里面指的是moudle.exports
小例子
window = global
window.a = 10
console.log(a)
不会报错,可以拿到a
window = this
window.a = 10
console.log(a)
直接报错
过检测
window = global
delete global
window.a = 10
这样可以过掉很多检测
console.log(a)
webpack
整体结构
var result;
!function(n){
function h(e){
c = {};
if (c[e])
return c[e].exports;
var t = c[e] = {
i:e,
l:!1,
exports:{}
};
return n[e].call(t.exports, t, t.exports, h),
t.l = !0,
t.exports
}
}(
{
模块1:function(e,t,n){
console.log('1111111')
}
模块2:function(e,t,n){
console.log('2222222')
}
}
)
想调用模块2里面的 内容
!function(n){
function h(e){
c = {};
if (c[e])
return c[e].exports;
var t = c[e] = {
i:e,
l:!1,
exports:{}
};
return n[e].call(t.exports, t, t.exports, h),
t.l = !0,
t.exports
}
result = h
}(
{
模块1:function(e,t,n){
console.log('1111111')
}
模块2:function(e,t,n){
console.log('2222222')
}
}
)