JavaScript(十四) 命名空间,对象枚举

1. 命名空间

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

下面是以前的用法:不过太麻烦了,每个人分工网页的一点东西,最后整合,

通俗点说:每个人都在相同的对象里,再以自己部门自己名字命名另一个对象

用的时候在设个变量,要不然超级麻烦,每次引用都要写:org.department1.jicheng

现在的用法:形成闭包,不污染全局变量,return作为一个接口连接上面的函数

 init初始化的作用,入口函数

 2.( jQuery可以)实现连续调用

写成return.this方便每次调用(return必须写在函数里面才作数)

理论上,默认return.undefined

 3. 属性的表示方法

两种方法基本完全等同,方括号里面必须是字符串形式的,下面的例子是属性拼接 :字符串加啥都是字符串

4. 对象的枚举(遍历)

4.1 for-in循环

 遍历对象,知道对象里的每个属性值是啥

引入for-in循环:单独给对象设一个循环,用来遍历对象用的,通过对象的属性个数来控制循环圈数(prop在这个obj里面有几个就循环多少圈)

obj固定(obj就是你想要遍历的对象,你想遍历谁就in谁),prop可以随便换名字

重点:属性知道了,就知道属性值了,但是下面打印的结果是5个undefined,obj.prop--->obj['prop']

相当于系统认为你让访问prop这个属性,不会把prop当成变量了,就变成一个定量了

应该改成下面图2的样子

 

 这么写prop还是个变量,每次还能代表不同的字符串,把不同字符串塞到里面去就代表了不同属性,在枚举里面访问属性只能这么写,别的地方访问属性可以用.

例2: ++  /var key in obj1;可以简写:把key提出去

 

4.2 hasOwnProperty(过滤性方法)

遍历的时候不想拿出来原型的属性,判断这个属性是自己的还是原型的,里面的参数把属性名的字符串形式传进去

 if里面返回的是布尔值,true就是自己的属性打印,不是就不打印false

4.3 in操作符(使用率较低)

看这个属性是否是这个对象的,是的话返回true,不是返回false 

属性要加引号变成字符串形式,直接写height叫做变量

但是,不分青红皂白,你的也是你的,你父级的也是你的只能判断你能不能在这个对象上调用到这个属性,原型的都算进去了)

4.4 instanceof(重点)

根本的语法理解: 

 如何区分对象{}和数组[]:引用{}之前,先让var obj = {};

法一:数组的constructor是array:

对象的constructor是object:

 法二:数组是array构造出来的,对象不是

 法三:toString是为了处理前面调用者的,返回特定的字符串格式

例:如果是对象调用的(obj.toString),this指向的就是前面的对象

this:谁调用toString this就指向谁

 call后面的[]数组替换this,就变成识别数组来返回结果

 上面的例子:第一个是数组,第三个是对象,能区分开,返回的字符串类型不一样

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值