第三章 Object()

3.1 Object()对象概要

可以将Object()构造函数想成是饼干模具,该饼干模具用来创建没有预定义属性或方法的空对象(当然除了那些继承自原型链的属性或方法。)

3.2 Object()参数

Object()构造函数采用一个可选参数,该参数是要创建的值。如果不提供任何参数,那么将有哟个null或undefined值。
如果将一个null和undefined之外的值传递给Object()构造函数,那么传入的值将被创建为一个对象。所以从理论上说,我们可以使用Object()构造函数来创建其它拥有构造函数的原生对象。

console.log(new Object());
console.log(new Object(null));
console.log(new Object(undefined));
console.log(new Object('liuyang'));
console.log(new Object(function () {}));

3.3 Object()属性和方法

Object()对象具有以下属性(不包含继承的属性和方法)。
属性
prototype原型

3,4 Object()对象实例属性和方法
实例属性
constructor 构造函数
实例方法
hasOwnProperty()
isPrototypeOf()
propertyIsEnumerable()
toLocaleString()
toString()
valueOf()
!!原型链以Object.prototype结尾,因此,Object()的所有属性和方法被所有的JavaScript对象继承。

var liuy = new Object();
liuy.name = 'LiuYang';
liuy.getName = function(){
    return this.name;
}
console.log(liuy.getName());
console.log(liuy.prototype);
console.log(liuy.toString());
console.log(liuy.constructor);

3.5 使用对象字面量创建Object()对象

创建“对象字面量”需要使用花括号包含一个或多个属性。

var liuy = {
    name: 'LiuYang',
    age: 23,
    sex: 'male',
    'getInfo': function(){return liuy.name+this.age+this.sex;}
};
console.log(liuy);
console.log(liuy.getInfo());

首先,它是一条语句,结尾要加分号;其次,最后一个属性后面没有逗号,最后,每个属性后面跟的是逗号,不是分号(因为不是语句)。

没必要将属性指定为字符串,除非属性名是如下几种情况。
是保留关键字之一。(在编辑器中会变色的标识符(属性))
包含空格或特殊字符(不在标识符规定内的字符)
以数字开始。
嗯,,就是不符合标识符命名规范的.
重要的事情再说一遍:对象的最后一个属性后面不该跟逗号。

3.6 所有你对象都继承自Object.prototype

Object()构造函数在JavaScript中是特殊的,因为它的prototype属性在原型链中是最后一个。
所以所有的对象都会继承Object.prototype的属性。

Object.prototype.foo = 'foo';
var myString = 'bar';
console.log(myString.foo);

!!!添加至Object.prototype的任何内容都将出现在for in循环和原型链中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值