简介:

JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。
在 JavaScript 中,对象是拥有属性和方法的数据。

一.对象的类型

  • 本地对象:就是ECMA定义好的一些对象,包含Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各种错误类对象Error、EvalError、RangeError、ReferenceError、SyntaxError和TypeError。
  • 内置对象:只有Global和Math两个对象,其实可以理解为是包含在本地对象中的。
  • 宿主对象:需要依赖浏览器等宿主环境的对象,简单点就是我们自定义的各种对象,包括BOM和DOM对象。

二.对象的创建、继承

  1. 字面量形式
    var obj = {name:"hello",age:18}

  2. 使用new关键字
    var obj = new object()
    obj.name = "hellow";
    obj.age = 19;

  3. 使用ES5的object.create()

    object.create()是一个静态的函数,参数一:要继承的对象;参数二:可选,用以对对象的属性做进一步的描述

     var obj = object.creat({name:"hello",age:"20"}) //obj继承了name和age属性

4.工厂模式创建
   function creatobj (name,age){

     var obj = new object();

     obj.name = name;

     obj.age = age;
return obj;

     }

     var o1 = creatobj("hello",21);

     var o2 = creatobj("hello",22);
          优点:能够重复创建同类对象,提高效率
         缺点:消耗内存

5.构造函数创建
     function Person(name,age) {

      this.name = name;

      this.age = age;

      }

     var per1 = new Person("hello",23);

     var per2 = new Person("world",24);

6.原型模式
    function Person(name,age){

     this.name = name;
this.age = age;

    }

     Person.prototype.showName =function(){

      alert(this.name);

      }

     var pe = new Person("pro",25);
pe.showName(); //25

7.混合模式

三.属性查询

var obj = {name:"hello"}

  1. 使用in运算符
    "name" in obj;
    如果对象的自有属性或者继承属性包含该属性就返回true;否则返回false。

2.hasOwnPreperty()
obj.hasOwnPrerperty("name");
如果是对象的自有属性就返回true;否则false

3.propertyIsEnumerable()
obj.propertyIsEnumerable("name" )
只检测这个属性是自有属性并且是可枚举的时候才返回true;否则返回false

4.使用"!=="
obj.name !== undefined //true 存在该属性;false 不存在该属性
但是存在一种特殊的场景只能使用in运算符而不能使用!==;如果var o = {x:undefined}的时候

javascript的对象的更多相关文章

  1. javascript 全局对象--w3school

    JavaScript全局对象 1.  decodeURI()解析某个编码的URI. 2.decodeURInComponent()解析一个编码的URI组件. 3.encodeURI()把字符串编码为U ...

  2. JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString

    JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...

  3. 从零构建JavaScript的对象系统

    一.正统的类与继承 类是对象的定义,而对象是类的实例(Instance).类不可直接使用,要想使用就必须在内存上生成该类的副本,这个副本就是对象. 以Java为例: public class Grou ...

  4. 关于javascript自定义对象(来自网络)(最近几天不会的)

    javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放在构造方法里面定义 优点:动态的传递参数 缺点:每创建一个对象就会创建相同的方法函数对象,占用大量内存 funct ...

  5. 据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展

    在据说每个大牛.小牛都应该有自己的库——框架篇中我扬言要做个小牛,没想到一天没更新,小伙儿伴们就戏谑的问我,油哥是不是要太监了?其实事情是这个样子的,这不是太监的节奏,一是,关于写个自己的库的想法由来 ...

  6. JavaScript RegExp 对象

    JavaScript RegExp 对象 RegExp 对象用于规定在文本中检索的内容. 什么是 RegExp? RegExp 是正则表达式的缩写. 当您检索某个文本时,可以使用一种模式来描述要检索的 ...

  7. JavaScript String 对象

    JavaScript String 对象 String 对象 String 对象用于处理文本(字符串). String 对象创建方法: new String(). 语法 var txt = new S ...

  8. JavaScript Math 对象

    JavaScript Math 对象 Math 对象 Math 对象用于执行数学任务. Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(). 语法 var ...

  9. JavaScript Number 对象

    JavaScript Number 对象 Number 对象 Number 对象是原始数值的包装对象. Number 创建方式 new Number(). 语法 var num = new Numbe ...

  10. JavaScript Array 对象

    JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值: var cars = ["Saab", "Volvo", & ...

随机推荐

  1. C和指针 第十八章 性能评测工具gprof

    linux平台下的gprof评测工具可以对程序进行分析,需要在编译时加上-pg选项,如上一章的二叉树代码: gcc -pg main.c ArrayBinaryTree.h ArrayBinaryTr ...

  2. CSS 中关于background 属性功能

    background 是 css中的核心属性,我们对他应该充分了解. background-image   定义背景图像  这个属性是我们用的最多的属性 设置背景图像有两个方式 background: ...

  3. BZOJ2802——[Poi2012]Warehouse Store

    1.题目巨短,自己看看吧 2.分析:这道题,想了半天dp还是想不到,最后看题解发现是个贪心的思想,我们维护一个堆,如果这个人不能加入就把他和堆上最大的进行比较,然后搞搞就行了 #include < ...

  4. airflow 部署

    环境 : ubuntu 14.04 LTS python 2.7 script: 设置环境变量: export AIRFLOW_HOME=~/airflow 安装相关依赖包: sudo apt-get ...

  5. EFUpdate

    using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...

  6. 【JavaScript】JS 中 原始字符串 和 HTML 字符转换

    参考资料:http://www.sjyhome.com/javascript/js-html-escape.html JS转换HTML转义符 SJY • 发表于:2013年10月05日 17:04 • ...

  7. 基础知识《十》unchecked异常和checked异常

    运行时异常在运行期间才能被检查出来,一般运行期异常不需要处理.也称为unchecked异常.Checked异常在编译时就能确定,Checked异常需要自己处理. checked 异常也就是我们经常遇到 ...

  8. JSTL 操作符

    el表达式的取值默认顺序:     pageScope  requestScope  sessionScope  applicationScope     结构,采用.导航,也称为存取器   ${us ...

  9. struts2 No result defined for action XXX and result input

    这种错误的原因一般是页面的属性和action里的属性个数.名称.类型不一致造成的 困扰了我一下午的问题,原来是表单中有两个input-text的name属性重复了,然后接受参数的时候就出现了这个错误 ...

  10. RecyclerView的使用之多种Item加载布局

    精益求精,为了更加透彻熟练得掌握,本文再次给大家介石介绍下如何利用RecyclerView实现多Item布局的加载,多Item布局的加载的意思就是在开发过程中List的每一项可能根据需求的不同会加载不 ...