Javascript我学之五对象的创建与使用
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘。
对象的创建
对象的含义

创建对象
1.)定义空对象之后再添加成员
var myObject = {};
之后便可以向它添加新成员:
myObject.name = "张三";
myObject.age = ;
2).使用对象字面量
对象字面量就是包围在一对花括号中的零或多个“name/value"对。
//通过对象字面量创建对象 属性的名字可以加也可以不加双引号
var person = {
"name": "张三",
age:
};
嵌套的对象定义
使用对象字面量方式,定义嵌套的对象很容易
//使用字面量创建嵌套的对象
var embedObj = {
info: "information",
//内嵌的对象
inner: {
id: ,
value:
},
//内嵌的数组
arr: ["one", "two", "three"]
};
定义对象方法
//定义对象方法
var obj = {
sayHello: function (name) {
console.info("你好," + name + "!");
}
};
obj.sayHello("qiu"); //你好,qiu
2).也可以直接追加到现有对象中.
var obj2 = {};
obj2.sayHello = function (name) {
console.info("你好," + name + "!");
};
对象的使用
//访问对象
var exampleObj = {
info: "information",
//内嵌的对象
inner: {
id: ,
value:
},
//内嵌的数组
arr: ["one", "two", "three"],
//方法
sayHello: function (name) {
console.info("你好," + name + "!");
}
};
//使用点表示法访问对象属性
console.info(exampleObj.info); //information
console.info(exampleObj.inner.value); //
console.info(exampleObj.arr[]); //one
//如果要访问的属性不存在,可以使用||指定默认值
console.info(exampleObj.notExist || "属性默认值"); //属性默认值
//使用[]访问对象属性
console.info(exampleObj['info']); //information
//调用对象方法
exampleObj.sayHello('张三'); //你好,张三
exampleObj['sayHello']('李四'); //你好,李四
枚举对象属性
//编程列出exampleObj对象的属性与方法
for (var p in exampleObj) {
console.info(p+ "类型:" + (typeof exampleObj[p]) );
}
// info类型:string
// inner类型:object
// arr类型:object
// sayHello类型:function
对象的属性可以随时添加与删除
//删除对象的属性与方法
delete exampleObj.info;
delete exampleObj.sayHello;
删除一个对象属性之后,再对它进行访问,将得到一个undefined。
//验证属性己删除
console.info(exampleObj.info);//undefined
console.info(exampleObj.sayHello === undefined); //true
//exampleObj.sayHello('张三'); //TypeError
处理TypeError:
//使用&&避免出现TypeError导致后继代码无法执行
exampleObj.sayHello && exampleObj.sayHello('张三');
//尽管sayHello方法己被删除,上述代码得到一个undefined
//但后面的代码仍然可以继续执行
对象作为函数参数
//作为函数参数的对象
function displayPerson(person) {
console.info('name=' + (person.name || '无名氏'));
console.info('age=' + (person.age || -));
};
//使用对象字面量直接将对象传入
displayPerson({
"name": "张三",
"age":
}); //name=张三
//age = 29
displayPerson({}); //name=无名氏
//age=-1
Javascript我学之五对象的创建与使用的更多相关文章
- Javascript我学之六对象工厂函数与构造函数
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘. 概述 使用对象字面量,或者向空对象中动态地添加新成员,是最简单易用的对象创建方法. 然而,除了这两种常用的对象创建方式,JavaScript ...
- 《JavaScript高级程序设计》读书笔记--(4)对象的创建
ECMAScript支持面向对象(OO)编程,但不使用类或者接口.对象可以在代码执行过程中创建或增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以采用下列模式创建对象. 对象的创建 工厂模 ...
- JavaScript对象的创建之使用json格式定义
json: javascript simple object notation. json就是js的对象,但是它省去了xml中的标签,而是通过{}来完成对象的说明. 定义对象 var person = ...
- JavaScript DOM高级程序设计2.1创建可重用的对象--我要坚持到底!
1.对象中包含什么 在javascript中,从函数到字符串实际上都是对象 继承 //创建一个person对象的实例 var penson={}; person.getName=function(){ ...
- JavaScript对象的创建
原文 简书原文:https://www.jianshu.com/p/6cb1e7b7e379 大纲 前言 1.简单方式创建对象的方法 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对 ...
- JavaScript(对象的创建模式)
JavaScript和其他语言略有不同,在JavaScript中,引用数据类型都是对象(包括函数).不过,在JavaScript中并没有“类”的概念,这决定了在JavaScript中不能直接来定义“类 ...
- JavaScript 对象的创建和操作
<script> // 对象是属性的无序集合,每个属性都是一个名/值对. 属性名称是一个字符串. // 对象种类 // 内置对象(nativ ...
- JavaScript面向对象—对象的创建和操作
JavaScript面向对象-对象的创建和操作 前言 虽然说在JavaScript编程语言中,函数是第一公民,但是JavaScript不仅支持函数式编程,也支持面向对象编程.JavaScript对象设 ...
- JavaScript对象的创建之基于构造方法+原型方式
为了解决原型所带来的问题,此处需要通过组合构造方法和原型来实现对象的创建,将属性在构造方法中定义,将方法在原型中定义.这种有效集合了两者的优点,是目前最为常用的一种方式. function Perso ...
随机推荐
- Qt中实现将float类型转换为QString类型
在使用Qt Creator编程时,难免会用到将float类型转换为QString类型的时候下面是我所有的方法: 1. 将QString类型转化为float类型,很简单 QString data; fl ...
- mpvue——支持less
安装 安装less和less-loader,我用的是淘宝源,你也可以直接npm $ cnpm install less less-loader --save 配置 打开build目录下的webpack ...
- mongoDB 文档操作_删
mongoDB 文档删除 MySQL对比 mysql delete from table where ... mongo db.collection.deleteOne(query) 删除函数 del ...
- Docker 错误 docker: invalid reference format. 的解决
运行 docker run –it –v /dataset:/dataset –v /inference:/inference –v /result:/result floydhub/pytorch: ...
- 【并发编程】一个最简单的Java程序有多少线程?
一个最简单的Java程序有多少线程? 通过下面程序可以计算出当前程序的线程总数. import java.lang.management.ManagementFactory; import java. ...
- LOJ #6285 分块入门9
题意:区间众数,不带修改,带修改刚看了一眼没看懂cls在讲啥QAQ. 题解:按照代码中那个sqrt(n/2/log2(n))大小分块,可以用均值不等式证明的,就是假设查询和n同级,然后一通爆算就可以得 ...
- c语言计算过程中的过程转换
graph BT float==>double; id1[char, short]==>int; int-->unsigned unsigned-->long long--&g ...
- 用SERVLET进行用户名和密码验证
一.界面展示 二.登录成功显示 三.代码 html <!DOCTYPE html> <html> <head> <meta charset="UTF ...
- CMDB资产管理系统开发【day26】:linux客户端开发
客户端疑难点及获取流程 1.linux客户端支持2就可以,python3就是很麻烦 难道你要求所有的客户端都上pytho3吗? 现在从bin的入口进去 HouseStark.ArgvHandler(s ...
- DirectX11 With Windows SDK--11 混合状态与光栅化状态
前言 虽然这一部分的内容主要偏向于混合(Blending),但这里还需提及一下,关于渲染管线可以绑定的状态主要有如下四种: 光栅化状态(光栅化阶段) 采样器状态(像素着色阶段) 混合状态(输出合并阶段 ...