JavaScript那些事儿(01): 对象
一. 对象是什么
是单身童鞋们正在查找的“对象”吗?是的,他/她就是活生生的对象。
Javascript是一种基于对象的语言, 你遇到的所有东西几乎都是对象。
但它又不同于基于类的语言。那么“类”又是神马,简单来说,类就是对同一类事物抽象的称呼。
比如“人”就是一个抽象的称呼,那么你,我,他,就是一个具体的‘人’对象。
那么“抽象”又是神马,抽象就是抽出事物的本质特性而暂时不考虑它们的细节。
抽象是人类在认识复杂现象中使用的最强有力的思维工具。抽象的目的是为了更好的具体!
二. 对象有什么
对象通常有属性和方法。
属性表示对象的静态特征,方法表示对象的动态行为。
比如人有“姓名”、“年龄”等属性,也有“吃饭”、“行走”等方法。
属性和方法又可统称为对象的“成员”,在javascript里统称为“属性”。
也就是可以把“方法”看作一种特殊的“属性”。
ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数”。
我们可以把javascript中的对象看成一组键值对,其中“键”就是属性的名称,“值”就是属性的值。
此外,对象还有生命周期,如同人要经历生老病死一样。
下面看个最简单的JS对象:
var person = {
name: 'cnblog',
score: 100,
eat: function() {},
walk: function() {}
};
三. 对象做什么
对象做什么的前提,当然是对象有什么,对象只能做它能力范围内的事。
通常一件简单的事情,一个对象自己就可以搞定。
当需要处理复杂的事情时,就需要多个对象之间相互协作才能完成。
既然要协作,那么必然要涉及对象之间如何沟通。
对象之间有什么关系,怎样发生关系等等。
当然这些问题,每种编程语言的设计者都给出了对应的解决方案。
我们的任务就是学会灵活使用它们,避免不必要的踩坑。
四. 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,用于创建一个拥有指定原型和若干个指定属性的对象。
五. JS内置对象
javascript内置对象是指独立于宿主环境的 ECMAScript 实现提供的对象。
常见的内置对象有:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、Math。
JavaScript那些事儿(01): 对象的更多相关文章
- 转:JavaScript中函数与对象的关系
来自:http://www.nowamagic.net/javascript/js_RelationOfFunctionAndObject.php 在ajax兴起以前,很多人写JavaScript可以 ...
- JavaScript中的window对象
JavaScript中的window对象:http://www.cnblogs.com/kissdodog/archive/2013/01/01/2841464.html
- JavaScript进阶系列01,函数的声明,函数参数,函数闭包
本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...
- javascript 构造函数方式定义对象 (转载)
javascript 构造函数方式定义对象 javascript是动态语言,可以在运行时给对象添加属性,也可以给对象删除(delete)属性 <html> <head> & ...
- JavaScript基础第01天笔记
JavaScript基础第01天 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的 ...
- javascript json字符串与对象相互转换
在实际项目中,经常遇到字符格式的问题,记下来以便日后方便查看.用到两个函数:JSON.stringify() 和 JSON.parse(). 使用ajax向后台请求数据,后台给前端返回数据,明明后端脚 ...
- javascript的window.ActiveXObject对象,区别浏览器的方法
(window.ActiveXObject)的作用,用来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("M ...
- Javascript初学篇章_5(对象)
对象 Javascript是一种面向对象的语言,因此可以使用面向对象的思想来进行javascript程序设计对象就是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体.举个例子,一只猫是个对象, ...
- javascript event(事件对象)详解
javascript event(事件对象)详解 1. 事件对象 1. 事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 什 ...
随机推荐
- C Static Inline函数
Inline函数 程序执行时,处理器从Memory中读取代码执行.当程序中调用一个函数时,程序跳到存储器中保存函数的位置开始读取代码执行,执行完后再返回. 为了提高速度,C定义了inline函数,告诉 ...
- For循环复杂练习
for是循环当中经常用到的一个结构,练熟了才可以. 练习-需求描述: 在控制台打印以下形式的字符: * * * * * * * * * * * * * * * 思路,首先分析需求的规律 1.首先分析需 ...
- Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
1. 找到listener.ora监听文件,具体位置:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora 2 ...
- HDOJ 2021 发工资咯:)(利用了一种取余的思想)
Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处 ...
- 关于STM32 定时器 PWM 实时调节占空比时,预装载特性
最近在调试项目的时候遇到一个奇怪的现象:在调试状态下,给定时器捕获比较寄存器赋不同值,能产生不同占空比的波形(图1).反映到器件上也有不同的电压显示,但是在设备运行的时候,就不行了(图2). 图1 图 ...
- [置顶] [混迹IT职场系列]一、转正的那些事儿
讲起转正,是每个IT人进入职场后要面对的第一关,只有越过这第一关卡才能更加顺利玩弄职场或被职场玩弄或互相玩弄. 很多人觉得转正只需自身努力即可,譬如有句话叫做 “只要功夫深,铁针磨成棒”.其实不然,职 ...
- 跨平台通信中间件thrift学习【Java版本】(转)
转自:http://neoremind.com/2012/03/%E8%B7%A8%E5%B9%B3%E5%8F%B0%E9%80%9A%E4%BF%A1%E4%B8%AD%E9%97%B4%E4%B ...
- iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath(汇总)
iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath 首先分析有几种原因,以及相应的解决方法 1.UITableViewCell的userInterac ...
- 【Python爬虫】安装 pyQuery 遇到的坑 Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
windows 64位操作系统下,用 Python 抓取网页,并用 pyQuery 解析网页 pyQuery是jQuery在python中的实现,能够以jQuery的语法来操作解析HTML文档,十分方 ...
- jquery ajaxform上传文件返回不提示信息的问题
在使用jquery的ajaxform插件进行ajax提交表单并且上传文件的时候,返回类型datatype :json但是后台通过写出一个json对象后,在执行完以后没有进入success函数,而是直接 ...