javaScript第六天(1)
JavaScript基础
核心知识点
- 对象
- 4种创建对象的方式
- 操作对象(取值,赋值)
今日学习目标
- 能够使用对象方式保存数据
- 能够理解自定义构造函数如何创建对象
- 能够获取对象中的值及给对象赋值
对象
思考: 如何通过js函数将人的信息输出?
什么是对象?
☞现实世界: 万事万物皆对象。✔对象: 必须是一个具体的事物。 (手机,汽车不是对象,属于一类对象)◆ 对象是由 特征(名词)【属性】 和 行为(动词)【方法】☞程序中的对象: 对现实对象的抽象☞ 总结: 1. 程序中的对象:✔ 对象必须有对应的属性【描述对象的特点,在程序中一般使用名词描述】✔ 对象必须有行为动作方法 【方法用来描述具体对象的行为动作,一般方法使用动词】
对象字面量创建对象
☞ 通过字面量方式创建对象var 变量名 = { key: value, key: value, key: functon () {} };备注:1. 创建对象,必须要确定具体的事物2. 创建对象,必须要确定对象有哪些属性【特征】或者方法【动作,行为】3. 如果一次想要输出多个对象,那么可以将每一个对象放到一个数组中。☞ 访问对象属性 (对象.属性 | 对象['属性名']) ☞ 访问对象方法 (对象.方法名)注意:1、 如果通过 对象['属性名']访问对象的属性时候,必须保证使用字符串格式☞ 函数:独立存在的函数☞ 方法: 属于对象的函数(匿名函数)
课堂练习
1. 创建一个英雄对象☞ 姓名☞ 年龄☞ 职业☞ 武器装备 (weapon)☞ 爱好☞ 技能 (移动, 攻击(attack))
通过Object创建对象
☞ var 变量 = new Object();1. Object 是一个构造函数2. 通过new调用构造函数☞ 添加属性:对象变量.属性名 = 值;☞ 添加方法: 对象变量.方法名 = function () {}
工厂方式创建对象
1. 思考如何创建多个游戏对象?2. 例如: function create ( name, age, height ) {var Ob = new Object()Ob.name = name;Ob.age = age;Ob.height = height;Ob.eat = function () {}return Ob; }
自定义构造函数创建对象
☞ 使用帕斯卡命名法 (每个单词首字母大写)☞ 例如: function CreateHero ( name, age, height ) {this.name = name;this.age = age;this.height = height;}☞ 课堂案例:1. 使用自定义构造函数方式创建3个对象,并添加到数组中 【对象基本的属性有: name, age, gender】
new 关键字执行过程
1. 在内存中创建一个空对象 2. this指向创建的对象 3. 执行函数 4. 返回当前对象注意:1. 在构造函数中,默认的返回值就是当前创建的对象
this关键字
1. 普通函数中的this 指向Window 2. 在方法中的this 指向当前方法所属的对象 3. 在构造函数的this 指向创建的对象 总结:构造函数谁调用函数,this就指向谁
遍历对象删除对象属性
☞ 通过 for in 遍历 对象的成员☞ 遍历对象中的属性☞ 遍历对象中的值
对象案例
1. 通过构造函数创建3个对象,并将3个对象放到数组中,最后再将数组中每一个对象的信息输出。 备注:☞对象的信息需要从用户输入中获取
检测对象的数据类型
对象 instanceof 构造函数
对象总结
1. 程序中的对象: 在程序中对具体事物的抽象2. 对象的基本的组成: 属性【描述对象特征特点】 | 方法 【描述对象行为动作功能】3. 创建对象方式:✔ 字面量方式var obj = {key : 值,key : function () {}}✔ 通过构造函数var obj = new Object(); obj.自定义属性名 = 值;obj.自定义方法名 = function () {}✔ 工厂模式创建对象(本质就是对第二种方式的封装,创建多个对象)function people (name) {var obj = new Object();obj.自定义属性名 = name;return obj}var zs = people('zs');✔ 自定义构造函数创建对象(确定对象的类型)function People (name) {this.自定义属性名 = name;}var zs = new People('zs');4. 对象的基本操作✔ 获取对象的属性或方法1. 对象.自定义属性名 || 对象['属性名']2. 对象.自定义方法名()5. 判断对象的具体类型对象名称 instanceOf 构造函数
其他扩展部分
简单数据类型在内存中的存储
☞ 简单数据类型(值类型) 存储在内存的 栈 上☞ Number String Boolean Null Undefined☞ 分析简单数据类型在内存中的存储方式var n1 = 10;var n2 = n1;
复杂数据类型在内存中的存储
☞ 复杂数据类型(引用类型) 存储在内存的 堆 上☞ Object | Array | 函数
简单数据类型作为函数的参数在内存存储
☞ 分析案例代码function fn ( a, b ) {a = a+1;b = b+1;console.log( a );console.log( b );}var x = 10;var y = 5;fn(x, y);console.log( x, y ); 思考:x , y 的值是多少?
复杂数据类型作为函数的参数在内存存储
☞ function Person ( name, age ) {this.name = name; this.age = age;this.sayHi = function () {console.log( "你好" );}}var p1 = new Peron( "张三", 18 );function getperson ( person ) {person.name = "李四";}getperson( p1 );console.log( p1.name ); 思考: p1 的name值是什么?
javaScript第六天(1)相关推荐
- javaScript第六天(2)
07-javaScript基础 ☞ 函数其他部分 arguments [掌握] arguments 作用? 解决当函数的形参个数不确定的时候,通过arguments获取实参的值 如何使用argumen ...
- Javascript第六天学习总结日期对象和定时器
1日期对象(Date) Date是日期的意思.Data数据的意思. 1.3日期对象定义 他就是一个盒子.里面装满了与日期有关的所有信息的盒子. 日期对象一般不独立使用,可以独立获取里面的相关信息. W ...
- JS基础学习第六天:JavaScript对象入门(构造函数和实例对象)
在 JavaScript 中,大多数事物都是对象, 从作为核心功能的字符串和数组,到建立在 JavaScript 之上的浏览器 API.你甚至可以自己创建对象,将相关的函数和变量封装打包成便捷的数据容 ...
- JavaScript基础第六天数组
数组 数组初始 数组:一组数据的集合,数组的每一个数据叫做一个元素 数组元素可以是任意类型,同一个数组中的不同元素可能是对象或数组 注意:隐式方式创建的数组,最常用的方式 数组特点 一组数据的集合,数 ...
- 学习总结:JavaScript学习分享
前言 在学习之前我都要求同学们用 Xmind 做知识点的总结,这样的好处技能提升我们编辑思维导图的能力,做思维导图在以后的工作当中是必备技能,通过每天总结达到练习思维导图的目的,在以后的工作当中就省去 ...
- JavaScript笔试题(js高级代码片段)
目录 1.哈希表+计数类型 1.1.判断是否存在重复元素 1.2.字符串中的第一个唯一字符 1.3.有效的字母异位词 1.4.多数元素 1.5.只出现一次的数字 1.6.位1的个数 2.哈希表+映射功 ...
- 要不起对三队 - alpha冲刺(第六天)
作业所属课程 构建之法-2021秋-福州大学软件工程 作业要求 2021秋软工实践 alpha冲刺 团队名称 要不起对三队 这个作业的目标 alpha冲刺(第六天) 成员日志 成员 完成的任务 任务时 ...
- 学习JS的第六天之字符串
学习JS的第六天之字符串 其他学习笔记:点击前往 文章目录 学习JS的第六天之字符串 前言 一.字符串(String) 1.创建一个字符串 2.字符串(String)的方法 3.字符串的length属 ...
- 小白JavaScript学习笔记----web APIs
目录 web API 操作DOM BOM,比如控制网页元素交互等各种网页交互效果 一.web APIs第一天(DOM-获取元素) 1.1变量声明 1.2Web API 基本认知 1.2.1作用和分类 ...
最新文章
- 目标10亿部?苹果AR眼镜有望明年登场!传搭载Mac级处理器、4K显示屏
- NDK断点无法调试Unable to detect application ABI's
- 快速排序 python菜鸟教程-快速排序
- 1.18 Java直接插入排序法
- 【直播回放】中外大厂奇葩说:谁是技术圈的嘴炮王者?
- SQL Server 创建存储过程
- 【转】Oracle回收站(recyclebin)
- 设计模式(六)------设计模式六大原则(5):迪米特法则
- Visual C++编程中的文件操作
- HashMap中hash(Object key)原理(hashcode >>> 16)
- iPhone13最新外观售价曝光:好看还便宜
- opencv-阈值处理
- Android开发学习之卡片式布局的简单实现
- 一个影响我现在生活状况的故事[转载]
- 数据库工程师基础学习1----计算机硬件基础知识,计算机体系结构与存储系统
- 手写HashMap排序
- 必修三计算机选修三知识点总结,高中生物必修一、必修二、必修三、选修三知识点总结(人教版).pdf...
- HTML的Form和XFORM的区别,Xform是什么意思
- H3CNE中静态路由实验
- 元宇宙链游OAS即将正式上线,社区热度只增不减
热门文章
- [递归]递归问题解题思路
- 最短路径算法----floyd(转)
- 【cudnn】cudnn 安装
- batch lr替代关系_建立关系的替代方法
- 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接
- 话剧《白鹿原》:叫人乍舌,令人唏嘘,也让人捏把汗(图)
- java教程菜鸟教程组合模式,组合实体模式
- hive 结构metastone_深入理解hive之事务处理
- ubuntu 安装kde桌面_在Ubuntu 20.04系统上安装KDE Plasma Desktop的方法
- python中的类装饰器应用场景_Python 自定义装饰器使用写法及示例代码