美文网首页
命名空间,对象枚举,判断区分方法

命名空间,对象枚举,判断区分方法

作者: 开心的小哈 | 来源:发表于2019-01-14 12:54 被阅读0次

以前可以用
管理变量,防止污染全局,适用于模块化开发

var org={
                department1:{
                    jiji:{
                        name:"sadf"
                    },
                    ab:{
                        
                    }
                },
                department2 :{
                    jiji:{
                        
                    },
                    sadf:{
                        
                    }
                }
            }
            var name=org.department1.jiji.name;

来解决,不过比较麻烦所以一般用立即执行函数,来返回函数,形成闭包
例如:

var name="小明";
             
             var ko=function (){
                 var name="小白"
                 function hh(){
                     console.log(name)
                 }
                 return hh();
             }();
             

链式调用

var deng={
                smok : function (){
                    console.log("命名")
                    return this;
                },
                name : function(){
                    console.log("空间")
                    return this;
                }
                }
                deng.smok().name();

另一种写法

每当obj.name---->会隐式转换成obj['name']

var deng={
                wife1 : {name: "呵呵"},
                wife2 : {name : "yse"},
                wife3 : {name : "no"},
                wife4 : {name : "mmmm"},
                syanum : function (num){
                    return this['wife'+num];
                }
            }
            console.log(deng.syanum(2).name.toString());

对象的枚举

for in
1.hasOwnProperty:判断是否有是原型上面的属性,如果是返回false,如果不是true
2.in :判断这个对象是否有这个属性
3.instanceof :A instanceof B A对象是不是B构造函数构造出来的 是则true
看A对象的原型链上 有没有 B的原型
区分方法
1 [].constructor
obj.constructor

  1. [] instanceof Array --->true
    obj instanceof Array --->false
  2. Object.protitype.toString.call([])--->Object Array
    Object.prototype.toString.call(123)--->Object Number
    Object.prototype.toString.call(obj)---->Object Object
var obj={
                 name : "小明",
                 kaixin : "我和吗",
                 __proto__ : {
                     lastName : "dneg"
                 }
             }
             Object.prototype.abc="123";
             for (var key in obj){
                 // console.log(obj.key)
                 //不会打印系统定义的属性
                 if(!obj.hasOwnProperty(key)){//判断是否有是原型上面的属性,如果是返回false,如果不是true
                     console.log(obj[key])
//打印结果123 deng
                 }
                 
             }

相关文章

  • 命名空间,对象枚举,判断区分方法

    以前可以用管理变量,防止污染全局,适用于模块化开发 来解决,不过比较麻烦所以一般用立即执行函数,来返回函数,形成闭...

  • 面向对象3

    一、原型共享 二、闭包 三、命名空间 四、链式调用 五、访问属性的两种方法 六、对象枚举-各种方法

  • C++之命名空间

    命名空间的核心目的:解决命名冲突 命名空间的内容可以是 符号常量、变量、函数、结构、枚举、类和对象等等。 创建一个...

  • 09 js04 继承模式、命名空间、对象枚举

    继承模式、命名空间、对象枚举 【附:this指向问题、arguments、逗号操作符、对象克隆】 1、继承模式:【...

  • 11.命名空间,对象枚举

    命名空间的作用:管理变量,防止全局污染,适用于模块化开发,闭包的变量私有化就是一个很好的处理命名空间的问题. 小技...

  • 继承模式,命名空间,对象枚举

  • 《Web前端开发之JavaScript精英课堂》(九)

    继承模式 命名空间 管理变量,防止污染全局,适用于模块发开发 对象枚举 for in obj.hasOwnProp...

  • C++命名空间

    C++ 命名空间 C++为了区分多个xyz的函数的时候,需要使用命名空间进行区分。 定义命名空间 using 使用...

  • 单例模式

    用一个对象规划一个命名空间,合理的管理对象上的属性与方法 命名空间 基于命名空间,创建一个模块分明的小型代码库 无...

  • Lession04类和对象的应用

    面向过程---------->面向对象 类的基本语法 构造方法 命名空间

网友评论

      本文标题:命名空间,对象枚举,判断区分方法

      本文链接:https://www.haomeiwen.com/subject/rieddqtx.html