JavaScript基础——使用JavaScript对象
JavaScript有许多内置对象,如Number(数字)、Array(数组)、String(字符串)、Date(日期)和Math(数学)。这些内置对象都有成员属性和方法。除了JavaScript对象,Node.js、MongoDB、Express和Angular也添加了自己的内置对象。
JavaScript也为你构建自己的自定义对象提供了一个相当不错的面向对象的编辑结构。使用对象而不只是一个函数集合,是编写清洁、高效、可重复使用的JavaScript代码的关键。
1、使用对象语法
为了有效的在JavaScript中使用对象,你需要对其结构和语法有所理解。一个对象实际上只是一个容器,他将多个值(并且在某些情况下,将多个函数)组合在一起。对象的值被称为属性,而对象的函数被称为方法。
要使用一个JavaScript对象,必须先创建该对象的实例。你可以通过使用关键字new和对象的构造函数名称创建对象实例。例如,要创建一个Number对象,可以使用下面的代码行:
var x = new Number("5");
对象的语法很简单:使用对象名称,然后是一个点,然后是属性或方法的名称。例如,下面的代码行获取和设置名为myObj的对象的name属性:
var s = myObj.name;
myObj.name = "New Name";
你也可以用相同的方法获取和设置对象的对象方法。例如,下面的代码行调用getName()方法,然后更改名为myObj的对象的方法函数:
var name = myObj.getName();
myObj.getName() = function(){return this.name;};
你还可以创建对象,并直接使用{}语法对变量和函数赋值。例如,下面的代码定义了一个新的对象,并赋予他值和一个方法函数:
var obj = {
name:"My Object",
value:7,
getValue:function(){return this.name;};
};
你还可以通过使用object[propertyName](对象[属性名])的语法来访问JavaScript对象的成员。当你使用动态属性名称并且当属性名必须包含JavaScript不支持的字符时,这非常有效。例如,下面的例子获取对象名myObj中的"User Name"和"Other Name"属性:
var propName = "User Name";
var val1 = myObj[propName];
var val2 = myObj["Other Name"];
2、创建自定义对象
使用内置的JavaScript对象有几个优点。当你开始编写使用越来越多的数据的代码时,就会发现自己想要建立具有特定的属性和方法的自定义对象。
你可以用几个不同的方法来定义JavaScript对象。最简单的是即时方法:只需创建一个通用的对象,然后根据需要添加其属性。例如,要创建一个用户对象,并赋给它一个名字和姓氏,以及定义一个函数来返回它们,你可以使用下面的代码:
var user = new Object();
user.first="Brad";
user.last="Dayley";
user.getName = function(){
return this.first+""+this.last;
}
你也可以使用下面的代码实现与直接赋值相同的效果,其中,对象被包含在{}中,而属性是使用property:value(属性:值)的语法定义的:
var user = {
first:'Brad',
last:'Dayley',
getName:function(){
return this.first+""+this.last;
}
};
对于你以后并不需要再使用的简单对象,前两个选项工作的非常好。对于可重用的对象,更好的方法是将对象实际封装在其自身的函数块里面。这具有允许你将所有关于对象的代码局部保持在对象本身中的优点。例如:
function User(first,last){
this.first = first;
this.last = last;
this.getName = function(){return this.first +""+ this.last;};
}
var user = new User("Brad","Daylet");
如果你有一个对象可以使用点符号表示法引用的属性,这些方法的最终结果是基本相同的,如下所示:
console.log(user.getName());
3、使用原型对象模式
创建对象的更先进的方法是使用原型模式。通过不在对象本身里面,而在对象的原型属性里面定义函数来实现一个模式。有了原型,在原型汇总定义的函数只在JavaScript加载时被创建一次,而不是每次创建一个新的对象时都被创建。
下面的例子展示了原型的语法:
function UserP(first,last){
this.first = first;
this.last = last;
}
UserP.prototype = {
getFullName:function(){
return this.first + "" + this.last;
}
};
请注意,你定义对象UserP,然后将UserP.prototype设置为包括getFullName()函数。你可以在原型中包括任意多的函数。每创建一个新的对象时,这些函数都将可用。
JavaScript基础——使用JavaScript对象的更多相关文章
- javaScript基础-01 javascript语法结构
一.基础 字符集 JavaScript程序是用Unicode字符集编写的. .区分大小写 .空格.换行符和格式控制符 .Unicode转义序列 .标准化 二.类型.值和变量 JavaScript的数据 ...
- 2021年3月-第03阶段-前端基础-JavaScript基础语法-JavaScript基础第01天
1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...
- JavaScript基础20——element对象
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- JavaScript基础10——node对象
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- JavaScript基础知识----document对象
对象属性document.title //设置文档标题等价于HTML的<title>标签document.bgColor //设 ...
- JavaScript基础知识(对象、函数与对象)
17.对象 属性:描述对象的信息 方法:描述对象的行为 封装:只关心输入和输出(不管过程如何实现) ü 对象的分类: 内置对象(原生对象): 就是JavaScript语言预定义的对象(如Strin ...
- JavaScript -基础- 函数与对象
一.JavaScript三对象 1.分类方式一 1)ECMAScript JavaScript的ECMA规范 JS本身的对象 2)Dom 操作HTML相关 3)BOM游览器对象 游览器窗口对象,全局的 ...
- JavaScript -基础- 函数与对象(二)String
一.判断数据类型typeof与判断对象类型instanceof 1.typeof typeof只能判断基础数据类型,无法判断引用数据类型 <script> var s="hell ...
- JavaScript基础之原型对象和原型链
原型对象 原型对象简单来说就是函数的原型所指向的对象.前面说原型的时候,说了Object.prototype所指对象就是Object(函数)的原型对象.在每个函数的原型对象中,默认会有construc ...
随机推荐
- 小技巧-a标签去除蓝圈
可以看到,蓝色的边框破坏了页面的整体美感,很多时候我们都是不需要的.通过设置相应的css可以去除点击过后的蓝色边框. map area { outline: none; } 效果如图,点击过后厌人的蓝 ...
- WWDC15 Session笔记 - Xcode 7 UI 测试初窥
https://onevcat.com/2015/09/ui-testing/ WWDC15 Session笔记 - Xcode 7 UI 测试初窥 Unit Test 在 iOS 开发中已经有足够多 ...
- iOS 单元测试之XCTest详解(一)
iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...
- Python自动化之IO多路复用
单线程.多线程和异步对比图 灰色的是阻塞 IO多路复用 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心 ...
- phpcms--模型管理,推荐位管理,类别管理
phpcms的默认设置不一定能满足需求,这个时候必须启用[模型管理],[推荐位管理],[类别管理]三个高级功能 为什么需要使用这些功能呢,因为后台添加内容的时候需要不同的模型 而模型通过什么来展现呢, ...
- scp和rsync限制传输速度
1.scp 限速100KB/s scp -l 1000 test root@192.168.1.104 此时的传输速率就是1M/8=100KB左右 2.rsync 限速100KB/s rsync -a ...
- 查找问题的利器 - Git Bisect
原文:http://gitbook.liuhui998.com/5_4.html 假设你在项目的'2.6.18'版上面工作, 但是你当前的代码(master)崩溃(crash)了. 有时解决这种问题的 ...
- Hadoop2.2.0环境下Sqoop1.99.3安装
本文转载自http://blog.csdn.net/liuwenbo0920/article/details/40504045 1.安装准备工作: 已经装好的hadoop环境是hadoop 2.2.0 ...
- word to word
Question: For each word, you can get a list of neighbor words by calling getWords(String), find all ...
- linux琐碎知识点
1.awk的使用方式,pattern支持正则表达式 awk 'pattern{action}' {filenames} 其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找 ...