文档章节

JavaScript面向对象

青慕
 青慕
发布于 2017/09/07 17:41
字数 518
阅读 2
收藏 0
点赞 0
评论 0

1.对象的声明:JavaScript用一个{...}表示一个对象,键值对一xxx: xxx 形式声明,用","隔开(注意:最后一个键值对不需要在末尾见","  以免在低版本的IE浏览器中报错):

var person = {
    name: "歪果仁",
    age: 18,
    sex: "男",
    height:180,
    hobby:"撩妹"
}

 

访问对象的属性是通过"."操作符来完成的,但后面跟的必须是一个有效的变量名。如果属性名包含特殊字符,就必须用''括起来(如果变量不是一个有效变量,访问这个属性也无法使用".",必须用['xxx']来访问)

var student = {
    age: 18,
    student-number: 1324520
};

student['student-number'];   // 1314520

//也可以通过这样来访问其他的属性
student['age'];   //18

所以我们在编写JavaScript代码的时候尽量使用标准的变量名,这样就可以直接通过objict.prop的形式访问一个属性了。

实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。

如果访问一个对象不存在的属性不会报错,而是返回undefined。

 

JavaScript的对象是动态类型,你可以自由的给一份对象添加或删除属性。

var wuzao = {
    name:wuzao,
}

wuzao.age;  // undefined
wuzao.age = 18;  // 新增一个age属性
wuzao.age;  // 18
delete wuzao.age;  // 删除age属性
wuzao.age;  // undefined
delete wuzao['name'];  //删除name属性
delete wuzao.height;   // 删除一个不存在的height也不会报错

 

我们要检测对象是否拥有某一属性,可以用 in 操作符

var person = {
    age: 18,
    height:175
}

'age' in person;   // true
'name' in person;   // false



// 不过要注意,如果 in 判断一个属性存在,这个属性不一定是person的,它可能是person继承得到的
'toString' in person;  // true
//因为toString 定义在object对象中,而所有的对象最终都会在原形链上指向object,所以person也拥有toString属性。



// 要判断一个属性是否是person自身拥有的,而不是继承得到的,可以用hasOwnProperty() 方法。
var person = {
    age: 18,
    height:175
}
person.hasOwnProperty('age');  // true
person.hasOwnProperty('toString');  //false

 

© 著作权归作者所有

共有 人打赏支持
青慕
粉丝 4
博文 14
码字总数 6563
作品 0
贵阳
程序员

暂无相关文章

从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会

摘要: 一、数据中台之道 6月8日,上海云栖大会进入了第二天的议程,数据中台专场论坛座无虚席,数据中台总架构师邓中华女士向在场的观众介绍了数据中台的衍生发展之道。 基于OneID、OneData...

阿里云云栖社区 ⋅ 22分钟前 ⋅ 0

Ubuntu部署django问题汇总

使用Anaconda3的Python3.6的pip安装UWSGI报错 原因是gcc版本不兼容,安装4.7并修改gccsudo apt-get install gcc-4.7sudo mv /usr/bin/gcc /usr/bin/gcc.baksudo ln -s /usr/bin/gcc-4.......

wuyaSama ⋅ 25分钟前 ⋅ 0

从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会

摘要: 一、数据中台之道 6月8日,上海云栖大会进入了第二天的议程,数据中台专场论坛座无虚席,数据中台总架构师邓中华女士向在场的观众介绍了数据中台的衍生发展之道。 基于OneID、OneData...

猫耳m ⋅ 25分钟前 ⋅ 0

Docker减肥小记

如果经常使用 docker,你会发现 docker 占用的资源膨胀很快,其中最明显也最容易被察 如何快速的清理 docker 占用的系统资源,具体点说就是删除那些无用的镜像、容器、网络和数据卷… 1、查看...

寰宇01 ⋅ 36分钟前 ⋅ 0

微信小程序中如何使用WebSocket实现长连接(含完整源码)

本文由腾讯云技术团队原创,感谢作者的分享。 1、前言 微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架、组件以及 API,在这个平台上面的想象空间很大。腾讯云研究了一...

JackJiang- ⋅ 44分钟前 ⋅ 0

定制库到Maven本地资源库

1.如果只有定制库的JAR文件 下载链接如下:pdf.jar 2.使用命令转换成Maven本地资源 mvn install:install-file -Dfile=/Users/manager/Downloads/clj-pdf-2.2.33.jar -DgroupId=clj-pdf -Dar......

年少爱追梦 ⋅ 48分钟前 ⋅ 0

高仿springmvc之xuchen-mvc

package org.mvc.framework.servlet; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.......

徐志 ⋅ 50分钟前 ⋅ 0

关于自定义URLStreamHandler的一次踩坑

关于自定义URLStreamHandler的一次踩坑 20180625 lambo init 说明 一般自定义实现url的协议解析.方案为实现URLStreamHandler.实现其 openConnection 就可以了, 如果我们执行 new URL("xx://...

林小宝 ⋅ 51分钟前 ⋅ 0

【SM2证书】利用BC的X509v3CertificateBuilder组装X509国密证书

演示证书文件 链接: https://pan.baidu.com/s/1ijHNnMQJj7jzW-jXEVd6Gg 密码: vfva 所需jar包 <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15on --> <dependenc......

小帅帅丶 ⋅ 52分钟前 ⋅ 0

用Calendar 实现 计算 一段时间的毫秒值

Calendar c=Calendar.getInstance();c.add(Calendar.MONTH, -1);int lastMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH)......

岸芷汀兰 ⋅ 56分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部