JS(十六)继承模式,命名空间,对象枚举(下)

写在最前面

命名空间

  • 管理变量,防止污染全局,适用于模块发开发

主要就是开发过程中遇到的命名冲突的问题,可以用对象的方法解决

var wu  = {
    name : yanzu,
    age : 18,
};

var shen = {
  name = "cheng",
  age = 18;
}

//调用的时候
wu.name
shen.name

//不冲突

也可以用闭包的方法


var name = 345;
var init = (function(){
    var name = "abc";
    
    var name = 123;
    function callName(){
        console.log(name);
    }
    
    returnfunction(){
        callName;
    }
    
}())

//这样子写就算 外部有重复的变量也不会冲突,因为执行完就被销毁了。等待下次被执行。

其实现在的代码管理工具还有打包工具很多如 WebPack之类的...


对象的枚举

遍历 枚举

  • for in
    • hasOwnProPerty
    • in
    • instanceof

for...in

var obj = {
    name : "123",
    age: 12,
    sex:"male";
    height :180,
    
}
for(var key in obj){
    console.log(key);//上面会打印出obj的属性
    console.log(obj[key]);//会打印属性值
}

hasOwnProPerty

var obj = {
    name : "123",
    age: 12,
    sex:"male";
    height :180,
    __proto__:{
        lastName : "wu"
    }
}

for(var key in obj){
    console.log(obj[key]);//会打印属性值
    //这样子直接打印也会把原型上面的方法给打印出来
    //可以用hasOwnProPerty来过滤掉
    if(obj.hasOwnProPerty){
     console.log(obj[key]);   
    }
    //这样就不会把他原型上面的方法给过滤掉
}

in

//判断属性是不是在对象里面,包括原型上面的

var obj = {
    name : "123",
    age: 12,
    sex:"male";
    height :180,
    __proto__:{
        lastName : "wu"
    }
}

"name" in obj //打印true
lastName in obj //打印true

instanceof


A instanceof B

// A对象 是不是 B构造函数构造出来的(官方给出的介绍)

//看A对象的原型链上 有没有 B的原型
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,235评论 25 709
  • 命名空间的作用:管理变量,防止全局污染,适用于模块化开发,闭包的变量私有化就是一个很好的处理命名空间的问题. 小技...
    Sune小叶子阅读 2,649评论 0 0
  • 昨天晚上,你出现在我的梦里。梦里的你很真实,你粗鲁的把我拉到你身边又猛的把我塞进怀里,和3年前一样,你有着那温柔如...
    积木积木阅读 2,540评论 0 3

友情链接更多精彩内容