如何理解javaScript对象?
在我们生活中,常常会提到对象一词,如:你找到对象了吗?你的对象是谁呀?等等。
在我们家庭中,有男友的女青年都会说我有对象了,那么她的对象是XX(她的男友)。
夫妻间呢?都会说我的爱人是谁谁谁,现在我们应知道什么是对象了吧。
有一句谚语:万物皆对象,在我们开发者眼中,程序是反应现实生活的。那我们如何在javaScript中写脚本进行反馈生活需求信息呢?
在我们javaScript的函数中定义多个属性和函数就是一个javaScript对象。
理念概念中的定义:面向对象(object-oriented,oo)的语言有一个标志,那就是它们都有类的概念。
但javaScript中是没有类的概念只有函数的概念,我们一般会通过一个函数来模拟一个类。
在生活中我们的面向对象是由属性和行为构成的。如:你的性别-男(这就是属性),我在工作(这是行为)。
在程序中我们通过类可以任意地创建多个属性和函数。
在ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或函数”。
下面我一起来看下示例吧!看看是怎么创建对象的、如何访问对象属性和对象函数(方法;java中的函数术语)的。

对象定义:
javaScript中的所有事物都是对象:字符串、数值、数组、函数…
此外,javaScript允许自定义对象
所有事物都是对象
javaScript提供多个内建对象,比如String、Date 、Array等等。对象只是带有属性和方法的特殊数据类型。
- 布尔型可以是一个对象
- 数字型可以是一个对象
- 字符串可以是一个对象
- 日期是一个对象
- 数学和正则表达式也是对象
- 数组是一个对象
- 甚至函数也可以是对象
var cars = {
name:"Flat",
model:500,
weight:850kg,
color:white
}
//变量是cars这个对象的容器
对象属性:
可以说“javaScript对象是键值对的容器”。
但是,我们通常认为"javaScript对象是键值对的容器"。
键值对通常写法为name:value(键与值以冒号分割)。
键值对在javaScript对象通常称为对象属性。
访问对象属性:
你可以通过两种方式访问对象属性:
实例1:
person.lastName;
实例2:
person["lastName"];
对象方法:
对象的方法定义了一个函数,并作为对象的属性存储。
对象方法通过添加()调用(作为一个函数)。
该实例访问了person对象的fullName()方法:
实例:
name = person.fullName();
如果你要访问person对象的fullName属性,它将作为一个定义函数的字符串返回:
name = person.fullName;
javaScript对象是属性和方法的容器。
访问对象方法:
你可以使用以下语法创建对象方法:
methodName: function () {code lines}
你可以使用以下语法访问对象方法:
objectName.methodName()
通常fullName()是作为person对象的一个方法,fullName是作为一个属性。
有多种方式可以创建,使用和修改属性和方法。
使用对象构造器:
构造器的意思是:创建了一个什么的,如:属性、函数等。
本例使用函数来构造对象:
实例
function person (firstname,lastname,age,eyecolor){
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)。
创建JavaScript对象实例:
一旦您有了对象构造器,就可以创建新的对象实例,就像这样:
var myFather = new person("John","Doe",50,"blue");
var myMother = new person("Sally","Rally",48,"green");
把属性添加到javaScript对象
您可以通过为对象赋值,向已有对象添加属性:
假设personObj已存在,您可以为其添加这些新属性:firstname、lastname、age以及eyecolor;
person.firstname="john";
person.lastname="Doe";
person.age=30;
person.eyecolor="blue";
x=person.firstname;
在以上代码执行后,x的值将是:
john
把方法添加到javaScript对象
方法只不过是附加在对象上的函数。
在构造器函数内部定义对象的方法:
function person (firstName,lastName,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}
changeName()函数 name的值赋给person的lastname 属性。
myMother.changeName("Doe");
JavaScript类
JavaScript是面向对象的语言,但javaScript不使用类。
在JavaScript中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。
javaScript基于prototype(原型),而不是基于类的。
如何理解javaScript对象?的更多相关文章
- 理解JavaScript对象
理解JavaScript对象 对象是JavaScript的基本数据类型.对象是一种复合值:将很多值(原始值或者其他对象)聚合在一起. JavaScript对象不仅可以保持自有的属性,还可以从原型对象继 ...
- 深入理解javascript对象系列第二篇——属性操作
× 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对 ...
- 理解javascript 对象,原型对象、闭包
javascript作为一个面向对象的语言,理解 对象.原型.闭包.模块模式等技术点对于成为一名合格的javascript程序员相当重要,多年没写过blog,今天就先拋个玉,在下基本也不做前端,但颇感 ...
- JavaScript大杂烩3 - 理解JavaScript对象的封装性
JavaScript是面向对象的 JavaScript是一种基于对象的语言,你遇到的所有东西,包括字符串,数字,数组,函数等等,都是对象. 面向过程还是面向对象? JavaScript同时兼有的面向过 ...
- 深入理解javascript对象系列第三篇——神秘的属性描述符
× 目录 [1]类型 [2]方法 [3]详述[4]状态 前面的话 对于操作系统中的文件,我们可以驾轻就熟将其设置为只读.隐藏.系统文件或普通文件.于对象来说,属性描述符提供类似的功能,用来描述对象的值 ...
- 深入理解javascript对象系列第一篇——初识对象
× 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...
- 理解 JavaScript 对象原型、原型链如何工作、如何向 prototype 属性添加新的方法。
JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模板.从原型继承方法和属性.原型对象也可能拥有原型, ...
- JavaScript大杂烩4 - 理解JavaScript对象的继承机制
JavaScript是单根的完全面向对象的语言 JavaScript是单根的面向对象语言,它只有单一的根Object,所有的其他对象都是直接或者间接的从Object对象继承.而在JavaScript的 ...
- 理解Javascript的动态语言特性
原文:理解Javascript的动态语言特性 理解Javascript的动态语言特性 Javascript是一种解释性语言,而并非编译性,它不能编译成二进制文件. 理解动态执行与闭包的概念 动态执行: ...
随机推荐
- NodeJs 开发微信公众号(三)微信事件交互
微信公众号有个规则,一旦开启了开发者模式,其他的常规功能就都必须通过接口调用完成.比如说自定义菜单功能,必须通过发送post请求的方式生成.本章就通过关注到取消关注的整个过程来谈一谈nodejs是怎么 ...
- 最牛的打字效果JS插件 typing.js
最新在做公司的一个项目,需要实现一个敲打代码的动画效果,粗意味比较简单,果断自己直接开写,写着写着发现是一个坑.需要支持语法高亮,并不能直接简单的用setTimeout来动态附件innerHTML.苦 ...
- 虚拟机体验之 QEMU 篇
引言 说起虚拟机,大家都不陌生.需要使用虚拟机的场景也非常的多,比如有志于写操作系统的同志,往往需要一个虚拟机来运行和调试他写的系统:再比如喜欢研究网络体系结构的朋友,需要在自己的电脑上虚拟出 N 个 ...
- wp已死,metro是罪魁祸首!
1.这篇文章肯定会有类似这样的评论:“我就是喜欢wp,我就是喜欢metro,我就是软粉“等类似的信仰论者发表的评论. 2.2014年我写过一篇文章,windows phone如何才能在中国翻身? 我现 ...
- Oracle数据库Job的下次执行时间老是变动问题
job的 interval设置为 sysdate+1 结果好多客户的这个时间最后会变的乱起八糟, 或是 导入 , 或是手动执行了等等, 还有自动会变的, 而且不少, 觉得莫名其妙, , 今天网上搜了下 ...
- JavaScript:正则表达式 前瞻
正向前瞻:用来捕获出现在特定字符之前的字符,只有当字符后面跟着某个特定字符才去捕获它.(?=) 负向前瞻:它用匹配只有当字符后面不跟着某个特定字符时才去匹配它.(?!) 在执行前瞻和负向前瞻之类的运算 ...
- 从零开始编写自己的C#框架(15)——Web层后端登陆功能
对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证.用户在线记录.相关日志记录.单用户或多用户使用帐号控制等,都是在这个页面进行处理的. 1.在解决方案中创建一个Web项目,并将它设置 ...
- .NET MVC4 Razor视图预编译(一)
在平时使用.NET MVC中不乏有类似的需求:某些razor视图,特别是系统后台的视图,不想让用户自行更改,需要通过某种方法把视图模板编译到项目的dll中去. 但是VS并不提供razor的预编译,如果 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- ASP.NET Core 中文文档 第三章 原理(7)配置
原文:Configuration 作者:Steve Smith.Daniel Roth 翻译:刘怡(AlexLEWIS) 校对:孟帅洋(书缘) ASP.NET Core 支持多种配置选项.应用程序配置 ...