深入剖析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 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
JavaScript函数详解
Nov 17 Javascript
AngularJS基础知识
Dec 21 Javascript
纯javascript代码实现计算器功能(三种方法)
Sep 07 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
Jul 06 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
Jun 28 Javascript
原生JS实现$.param() 函数的方法
Aug 10 Javascript
在小程序Canvas中使用measureText的方法示例
Oct 19 Javascript
js使用Promise实现简单的Ajax缓存
Nov 14 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
一个支付页面DEMO附截图
2014/07/22 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
python实现多线程的两种方式
2016/05/22 Python
pyqt5实现登录界面的模板
2020/05/30 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
python实现的生成word文档功能示例
2019/08/23 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
python生成任意频率正弦波方式
2020/02/25 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
css sprite简单实例
2016/05/23 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
社区交通安全实施方案
2014/03/22 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
2015年女生节活动总结
2015/02/27 职场文书
风之谷观后感
2015/06/11 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书