深入剖析JavaScript编程中的对象概念


Posted in Javascript onOctober 21, 2015

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
此外,JavaScript 允许自定义对象。
所有事物都是对象
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。

  • 布尔型可以是一个对象
  • 数字型可以是一个对象
  • 字符串也可以是一个对象
  • 日期是一个对象
  • 数学和正则表达式也是对象
  • 数组是一个对象
  • 甚至函数也可以是对象

JavaScript 对象

对象只是一种特殊的数据。对象拥有属性和方法。
访问对象的属性
属性是与对象相关的值。
访问对象属性的语法是:

objectName.propertyName

这个例子使用了 String 对象的 length 属性来获得字符串的长度:

var message="Hello World!";
var x=message.length;

在以上代码执行后,x 的值将是:

12

访问对象的方法
方法是能够在对象上执行的动作。
您可以通过以下语法来调用方法:

objectName.methodName()

这个例子使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:

var message="Hello world!";
var x=message.toUpperCase();

在以上代码执行后,x 的值将是:

HELLO WORLD!

创建 JavaScript 对象
通过 JavaScript,您能够定义并创建自己的对象。
创建新对象有两种不同的方法:

  1. 定义并创建对象的实例
  2. 使用函数来定义对象,然后创建新的对象实例

创建直接的实例
这个例子创建了对象的一个新实例,并向其添加了四个属性:
实例

person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";

替代语法(使用对象 literals):
实例

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};

使用对象构造器
本例使用函数来构造对象:
实例

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;

T在以上代码执行后,x 的值将是:

John

把方法添加到 JavaScript 对象
方法只不过是附加在对象上的函数。
在构造器函数内部定义对象的方法:

function person(firstname,lastname,age,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 相关文章推荐
jQuery 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
JS获取select的value和text值的简单实例
Feb 26 Javascript
简介JavaScript中substring()方法的使用
Jun 06 Javascript
javascript实现五星评价代码(源码下载)
Aug 11 Javascript
JavaScript实现网页加载进度条代码超简单
Sep 21 Javascript
AngularJS入门教程之表格实例详解
Jul 27 Javascript
JavaScript实现弹出广告功能
Mar 30 Javascript
JavaScript引用类型Function实例详解
Aug 09 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
Feb 13 Javascript
JS函数进阶之prototy用法实例分析
Jan 15 Javascript
Vue项目打包压缩的实现(让页面更快响应)
Mar 10 Javascript
关于angular浏览器兼容性问题的解决方案
Jul 26 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 #Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 #Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 #Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 #Javascript
13个PHP函数超实用
Oct 21 #Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 #Javascript
JavaScript对象数组的排序处理方法
Oct 21 #Javascript
You might like
php 常用类整理
2009/12/23 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
PHP正则验证Email的方法
2015/06/15 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
JS实现放烟花效果
2020/03/10 Javascript
Python版的文曲星猜数字游戏代码
2013/09/02 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
韩国11街:11STREET
2018/03/27 全球购物
导游实习生自荐书
2014/01/28 职场文书
授权委托书格式模板
2014/04/03 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
计算机毕业生求职信
2014/06/10 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
2014年关工委工作总结
2014/11/17 职场文书
医德医风学习心得体会
2016/01/25 职场文书
小数乘法教学反思
2016/02/22 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL