码迷,mamicode.com
首页 > 其他好文 > 详细

权威指南学习心得-对象

时间:2015-12-14 21:15:02      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

对象的属性特性:

1、可写(writable)

2、可枚举(enumerable)

3、可配置configurable

对象特性:

1、对象的原型(prototype)

2、对象的类(class)

3、对象的扩展标记

对象的种类

1、内置对象(数组、函数、日期和正则表达式)

2、宿主对象 htmlelement

3、自定义对象

属性的种类

自有属性

继承属性

原型:

每一个js对象(null和Object.prototype除外)都和另一个对象相关联,每一个对象都从原型继承属性

对象直接量({})和new Object的原型对象是Object.prototype

函数对象(function(){})的原型是Function.prototype

Date对象(new Date())的原型是Date.prototype

Array对象(new Array或者[])的原型是Array.prototype

RegExp对象(new RegExp())的原型是RegExp的原型是RegExp.prototype,

new加构造函数的对象的原型是构造函数的原型

其他原型对象都是普通对象,普通对象都具有原型。所有的内置构造函数(Function Array Date RegExp)以及自定义的构造函数都具有一个继承自Object.prototy的原型,比如Data.prototype的属性继承自Object.prototype,因此由new Date()创建的Date对象的属性同时继承自Date.prototype和Object.prototype.这一系列连接的原型对象就是所谓的原型链

Object.create()创建一个新对象,其中第一个参数是这个新对象的原型

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

function inherit(p){
  if(p==null) throw TypeError();
  var t=typeof p;
  if(t!=="object"&&t!=="function"){
    throw TypeError();
  }
 var f=function(){};
  f.prototype=p;
  return new f();
  
}

var t3=inherit(o);
console.log(t3.x);//1

继承 

属性赋值要么失败,要么创建一个属性,要么在原始对象中设置属性

属性访问错误

查询一个不存在的属性并不会报错,如果在对象O自身的属性或者继承的属性中均未找到属性x,属性表达式o.x则返回undefined

但是。如果对象不存在,那么试图查询这个不存在的对象的属性就会报错

简练和保险的做法

var len=book&&book.subtitle&&book.subtitle.length;

 

权威指南学习心得-对象

标签:

原文地址:http://www.cnblogs.com/yhf286/p/5046441.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!