JavaScript那些事儿: 对象

1. 首先对象是什么?

是单身童鞋们正在查找的“对象”吗?是的,他/她就是活生生的对象。

Javascript是一种基于对象的语言, 你遇到的所有东西几乎都是对象。

但它又不同于基于类的语言。那么“类”又是神马,简单来说,类就是对同一类事物抽象的称呼。

比如“人”就是一个抽象的称呼,那么你,我,他,就是一个具体的‘人’对象。

那么“抽象”又是神马,抽象就是抽出事物的本质特性而暂时不考虑它们的细节。

抽象是人类在认识复杂现象中使用的最强有力的思维工具。抽象的目的是为了更好的具体!

2. 其次对象有什么?

对象通常有属性和方法。

属性表示对象的静态特征。方法表示对象的动态行为。

比如人有“姓名”、“年龄”等属性,也有“吃饭”、“行走”等方法。

属性和方法又可统称为对象的“成员”,在javascript里统称为“属性”。

也就是可以把“方法”看作一种特殊的“属性”。

ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数”。

我们可以把javascript中的对象看成一组键值对,其中“键”就是属性的名称,“值”就是属性的值。

此外,对象还有生命周期,如同人要经历生老病死一样。

下面看个最简单的JS对象:

var person = {

  name: ‘cnblog‘,

  score: 100,

  eat: function() {},

  walk: function() {}

};

3. 最后对象做什么?

对象做什么的前提,当然是对象有什么,对象只能做它能力范围内的事。

通常一件简单的事情,一个对象自己就可以搞定。

当需要处理复杂的事情时,就需要多个对象之间相互协作才能完成。

既然要协作,那么必然要涉及对象之间如何沟通。

对象之间有什么关系,怎样发生关系等等。

当然这些问题,每种编程语言的设计者都给出了对应的解决方案。

我们的任务就是学会灵活使用它们,避免不必要的踩坑。

4. JS创建对象

js创建对象有以下几种方式:

(1). 使用对象字面量:

var person = {
    name: ‘cnblog‘,
    score: 100
}

(2). 使用Object:

var person = new Object();
person.name = ‘cnblog‘;
person.score = 100;

(3). 使用函数构造器:

function Person(name, score) {
  this.name = name;
  this.score = score
}
var person = new Person(‘cnblog‘, 100);

其实使用Object类型创建对象,本质上也是使用函数构造器来创建的,因为Object也是函数构造器:

typeof Object    // "function"

(4). 使用Object.create:

var person = Object.create(Object.prototype, {
  name: { writable:true, configurable:true, value: "cnblog" },
  score: { writable:true, configurable:true, value: 100 }
});

Object.create()是ES5新增的API,用于创建一个拥有指定原型和若干个指定属性的对象。

5. JS内置对象

javascript内置对象是指独立于宿主环境的 ECMAScript 实现提供的对象。

常见的内置对象有:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、Math。

时间: 2024-12-20 14:51:59

JavaScript那些事儿: 对象的相关文章

javascript类型系统——Math对象

× 目录 [1]常量 [2]函数 前面的话 javascript使用算术运算符实现基本的算术运算,如果要实现更加复杂的算术运算,需要通过Math对象定义的常量和函数来实现.和其他对象不同,Math只是一个静态对象,而并没有Math()构造函数.实际上,Math只是一个由Javascript设置的对象命名空间,用于存储数学常量和函数.本文将详细介绍Math对象 new Math();//Uncaught TypeError: Math is not a constructor 常量 Math对象一

JavaScript日期时间对象的创建与使用(三)

时钟效果一: 代码: <html> <head> <meta charset="utf-8"/> <title>JavaScript日期时间对象的创建与使用</title> </head> <body> <h2 id="time"></h2> <script type="text/javascript"> function Cl

javascript 通过Date对象验证日期合法性

通常来说,javascript验证日期的有效性可以通过正则判断 但正则表达式无法精准验证日期的有效性,你无法通过正则表达式判断出1900-02-29是非法日期而2000-02-29是合法日期,而且正则表达式匹配起来比较繁琐. 要想精确验证,最容易想到的方法就是通过月份判断日期是否合法(1~28/29/30/31),你可以用一个数组表示每月的天数,如daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],但你会发现daysInMonth[1]这个值可能是

JavaScript中的对象

JavaScript对象 JavaScript对象是基本数据类型之一,是复合型数据: JavaScript中几乎所有事物都是做对象: JavaScript的对象是拥有属性和方法的数据: JavaScript 中的对象可以简单理解成"名称:值"对(name:value). JavaScript中的对象分类 1.内建对象: 数据分装对象(object.object.prototype.Number.Boolean.String.Array.Function): 工具类对象(Math.Dat

JavaScript window.location对象

JavaScript window.location对象 示例 注意 方法 经常使用window.location,它的结构总是记不住,简单梳理下,方便以后查询. 示例 URL:http://b.a.com:88/index.php?name=kang&when=2011#first 属性 含义 值 protocol: 协议 "http:" hostname: 服务器的名字 "b.a.com" port: 端口 "88" pathname

JavaScript内建对象

JavaScript内建对象包括: String.Array.Math.Date.Boolean.Number.Event.RegExp. 使用内建对象的属性和方法需要使用new关键字和构造函数创建内建对象的实例,对象实例继承对象的属性和方法. String 定义了所有处理字符串的操作. Array 提供一个数组模型,存储大量有序数据. Math 定义了所有数学运算. Date 定义了所有处理日期和时间的操作. Boolean 定义了处理布尔值的操作. Number 定义了处理数字的操作. Ev

javascript --- jQuery --- Deferred对象

javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应词典:v.迁延:听从:扣存:[军]使延期入伍所以deferred对象的含义就是"延迟"到未来某个点再执行. jQuery的官方文档给出了用jQuery.ajax()发送请求的基本方式http://api.jquery.com/jQuery.ajax/Example: Save some d

Javascript学习------FileSystemObjec对象

动态创建FileSystemObject对象: var fso=new FileSystemObject("Scripting.FileSystemObject"); (接下来可以用变量fso对Drive对象.Drives集合.File对象.Files集合.Folder对象.Folders集合以及TextStream对象进行相应的操作.) FileSystemObject对象的方法 ·GetAbsolutePathName()方法:该方法根据提供的路径返回完整的路径. ·GetBase

JavaScript事件---事件对象

原文:JavaScript事件---事件对象 发文不易,若转载传播,请亲注明出处,谢谢!   内容提纲: 1.事件对象 2.鼠标事件 3.键盘事件 4.W3C与IE JavaScript事件的一个重要方面是它们拥有一些相对一致的特点,可以给你的开发提供更多的强大功能.最方便和强大的就是事件对象,他们可以帮你处理鼠标事件和键盘敲击方面的情况,此外还可以修改一般事件的捕获/冒泡流的函数. 一.事件对象 事件处理函数的一个标准特性是,以某些方式访问的事件对象包含有关于当前事件的上下文信息. 事件处理三