对象总结

javascript的简单数据类型包括数字、字符串、布尔值、null和undefined。其他的所有值都是对象。

  • 对象是属性的容器,每个属性都有相应的键值。属性的名字可以是包括空字符串在内的任意字符串,属性值可以是除undefined值之外的任何值。
  • javascript里的对象是无类型的。它对新属性的名字和属性的值没有限制。对象可以包含其他对象,所以它们很容易的可以表示成树状或图形结构。
  • javascript包含一种原型链的特性,允许对象继承另外一个对象的属性。

对象字面量

对象的字面量就是包裹在花括号里的零个或者多个键值对。如果属性名是个合法的标识符且不是保留字,则不需要强制使用引号。

var empty_object = {}
var stooge = {
  "first-name": "Jerome",
  "last-name": "Howard",
    age: 24
};

检索

stooge["first-name"] // Jerome
stooge.age // 24

两种检索方式

  • 使用[]
  • 如果键是和合法的js标识符那么可以使用 .
stooge["first-name"] || 'none'
stooge && stooge["first-name"]

可以用以上两种方式设置默认值或者防止对象不存在而抛错。

更新

stooge["first-name"] = 'JACK'

如果改属性存在那么会更新,否者会扩充该属性到对象中。

引用

对象是通过引用来传递的,所以它们永远不会被复制。

原型

  • 每个对象都有一个原型对象,并且可以从中继承属性。所有通过对象字面量创建的对象都链接到Object.prototype。
    创建一个用原对象作为其原型对象的新对象
if (typeof Object.beget !== 'function') {
  Object.create = function (o) {
    var F = function () {};
    F.prototype = o;
    return new F();
  }
}
  • 在我们更新对象的时候,原型链不会发生变化。
  • 原型链只有在检索值得时候才会被用到。如果在该对象检索不到这个值 ,那么就会到原型对象中去获取。

反射

typeof 检查对象类型
hasOwnProperty 查看对象是否拥有读友的属性。

枚举

for in 遍历对象所有的属性名

删除

delete stooge.age

delete 可以删除对象的属性

你可能感兴趣的:(对象总结)