Javascript学习笔记(五)

1.对象是js的基本数据类型,它将很多值聚合在一起,并且可以通过名字访问这些值。对象也可以看做是属性的无序集合,每个属性都是一个名/值对。属性名是字符串,也可以把对象看成是从字符串到值的映射。js中的对象是动态的,可以新增也可以删除属性。

属性包括名字和值。属性名可以是包含空字符串在内的任意字符串,但不能存在两个同名的属性。值可以是任意值,或者可以是getter或setter函数(或两者都有)。

每个属性都有三个特性:可写(是否可以设置属性值),可枚举(是否可以通过for/in循环返回该属性),可配置(是否可以删除或修改该属性)。

每个对象还有三个特性:原型,类和扩展标记(是否可以向该对象添加新属性)。

2.创建对象的几种方式

对象直接量:保留字可以作为对象的属性名。ES5中,对象直接量中的最后一个属性后的逗号将忽略。所有通过对象直接量创建的对象都有同一个原型对象,可以通过Object.prototype获得这个原型对象的引用。Object.prototype没有原型对象或者说原型对象为null。

通过new:new后面跟随一个构造函数。如果使用 var obj = new Object(t);生成一个对象,不提供t或者t为null、undefined的情况下,会生成一个新的空对象,原型是Object.prototype;t如果是一个非宿主对象,那么直接返回t,不创建任何新对象;如果t为基本类型变量,那么会生成对应的包装类对象。

Object.create():第一个参数为对象的原型。可以传入null来创建一个没有原型的新对象,但通过这种方式创建的对象不会继承任何东西,甚至不包括基础方法,如toString()。如果传入的是对象直接量,那么该对象直接量也是新生成对象的原型对象。假设有如下代码:

var o = {x:1,y:2};
var t = Object.create(o);
console.log(t);

打印出来的是什么内容呢?就是{}。t有x和y属性,是从o继承过来的。Object.create除了第一个参数传入对象原型之外,第二个参数也可以传入一个对象,这个对象的所有可枚举属性会复制到新创建的对象上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值