JavaScript基础教程

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

2018-03-18  本文已影响12人  StevenTang

写在最前面

命名空间

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

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

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的原型
上一篇下一篇

猜你喜欢

热点阅读