JavaScript中对象介绍


Posted in Javascript onDecember 31, 2014

JavaScript中,除了number、string、boolean、null和undefined,其它所有的值都是对象。对象可以通过字面量来直接声明,也可以通过new操作符来新建。与Java语言不同,JavaScript对象中的property是可以动态添加或者删除的;同时,对象中的property还可以是空字符串:

//properties in object can be added/deleted dynamically

var o = {x:1, y:2};

console.log(o);//Object {x=1, y=2}

delete o.y;

o.z = 3;

console.log(o);//Object {x=1, z=3}
//empty string is allowed as object property

var o2 = {"":88, "p":99};

console.log(o2);//Object { =88, p=99}
//for constructor function, "new" operation returns an object.

function Computer(x, y) {

  this.x = x;

  this.y = y;

}

var c = new Computer(126, 163);

console.log(c);//Computer {x=126, y=163}

var c2 = new Computer(126);//missing parameter value will be "undefined"

console.log(c2);//Computer {x=126, y=undefined}

c.z = 66;

console.log(c);//Computer {x=126, y=163, z=66}

delete c.y;

console.log(c);//Computer {x=126, z=66}

如果在使用new操作符来新建对象时,作用的function并不是一个类的constructor,而仅仅是一个普通的函数,那么JavaScript将在执行该函数后返回一个空对象:

//for pure function, "new" operation returns an empty object.

function compute(x){

  console.log("execute function compute");

  return x*2;

}

var a = new compute();

console.log(a);//compute {}

Object属性

JavaScript中的Object有以下3个属性:

1.prototype。引用,指向Object的原型对象。原型对象中的property可以被Object所继承。
2.class。字符串,表示Object的类名。
3.extensible。boolean值,表示Object中是否允许动态添加property。该属性仅在ECMAScript 5中有效。

Property属性

Object中的Property也有3个属性:

1.writable。该property是否可写。
2.enumerable。当使用for/in语句时,该property是否会被枚举。
3.configurable。该property的属性是否可以修改,property是否可以删除。

Javascript 相关文章推荐
seajs1.3.0源码解析之module依赖有序加载
Nov 07 Javascript
JavaScript对IE操作的经典代码(推荐)
Mar 10 Javascript
jQuery遍历Table应用示例
Apr 09 Javascript
js获取下拉列表的值和元素个数示例
May 07 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
canvas实现图像截取功能
Feb 06 Javascript
vuejs2.0子组件改变父组件的数据实例
May 10 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
Mar 06 Javascript
React中使用async validator进行表单验证的实例代码
Aug 17 Javascript
Javascript 之封装(Package)
Sep 14 Javascript
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
selenium+java中用js来完成日期的修改
Oct 31 Javascript
JavaScript中用字面量创建对象介绍
Dec 31 #Javascript
javascript设计模式之中介者模式Mediator
Dec 30 #Javascript
javascript实现window.print()去除页眉页脚
Dec 30 #Javascript
Javascript访问器属性实例分析
Dec 30 #Javascript
Javascript中数组sort和reverse用法分析
Dec 30 #Javascript
jQuery中:visible选择器用法实例
Dec 30 #Javascript
JQuery设置时间段下拉选择实例
Dec 30 #Javascript
You might like
中国广播史趣谈 — 几个历史第一次
2021/03/01 无线电
php使用GD2绘制几何图形示例
2017/02/15 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
Python内建数据结构详解
2016/02/03 Python
python psutil库安装教程
2018/03/19 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
python开发前景如何
2020/06/11 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
就业协议书的作用
2014/04/11 职场文书
男性健康日的活动方案
2014/08/18 职场文书
婚宴邀请函
2015/01/30 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL