js的闭包和命名空间在平常用的还是蛮多的,尤其是面试的时候经常会问,这里对js闭包和命名空间做个总结。
1. js中的命名空间用于解决命名冲突的问题
2. js的闭包是指一个函数能够引用其他函数内部变量,这个能力或者行为就是闭包
比如:
var obj1 = {
name: 'test1'
}
var obj2 = {
name: 'test2'
}
我们就可以通过obj1.name和obj2.name的形式分别取得obj1和obj2下的name,而不会发生命名冲突。
再比如:
function Obj() {
var globaName = 'test'
function f1() {
console.log(globaName)
}
function f2() {
console.log(globaName)
}
}
这里f1和f2都能读取Obj下的globalName,这就形成了闭包。
闭包的主要应用场景之一就是模块化编程!
网友评论