深入剖析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 相关文章推荐
让广告代码不再影响你的网页加载速度
Jul 07 Javascript
DOM 基本方法
Jul 18 Javascript
javascript 闭包疑问
Dec 30 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 Javascript
js调用iframe实现打印页面内容的方法
Mar 04 Javascript
JQuery弹出层示例可自定义
May 19 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
详解webpack+express多页站点开发
Dec 22 Javascript
ES6与CommonJS中的模块处理的区别
Jun 13 Javascript
react-native使用leanclound消息推送的方法
Aug 06 Javascript
Electron 如何调用本地模块的方法
Feb 01 Javascript
原生javascript中this几种常见用法总结
Feb 24 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中通过curl smtp发送邮件
2012/06/05 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Python中的集合类型知识讲解
2015/08/19 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
python中的时区问题
2021/01/14 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
银行求职信范文
2014/05/26 职场文书
志愿者活动总结报告
2014/06/27 职场文书
建筑结构施工求职信
2014/07/11 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
工作自我推荐信范文
2015/03/25 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技