IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 学习js高级的第一天 -> 正文阅读

[JavaScript知识库]学习js高级的第一天

一、创建对象的方法

????????//创建一个学生对象 ?属性 :名称,身高,年龄 ?方法:吃饭 ,跑

? ? ? ? 1、直接声明对象(最基础的创建对象的方法)

????????好处:简单,方便

? ? ? ? 缺点:无法进行量产

????????var s1={

? ? ? ? ? ? name:"王一",

? ? ? ? ? ? height:180,

? ? ? ? ? ? age:21,

? ? ? ? ? ? eat:function(){

? ? ? ? ? ? ? ? console.log(this.name+"正在吃饭")

? ? ? ? ? ? },

? ? ? ? ? ? run:function(){

? ? ? ? ? ? ? ? console.log(this.name+"正在跑")

? ? ? ? ? ? }

? ? ? ? }

????????2、工厂模式创建对象

????????好处:快速量产

? ? ? ? 弊端:通过工厂模式创建的对象,没法去检测对应的类型

????????function createStudent(name,age,height){

? ? ? ? ? ? var obj=new Object()

? ? ? ? ? ? obj.name=name

? ? ? ? ? ? obj.height=height

? ? ? ? ? ? obj.age=age

? ? ? ? ? ? obj.eat=function(){

? ? ? ? ? ? ? ? console.log(this.name+'正在吃')

? ? ? ? ? ? }

? ? ? ? ? ? return obj

? ? ? ? }

???????var s1=createStudent("王一",21,180)

? ? ? ? var s2=createStudent("王二",22,192)

3、构造函数创建对象

????????javascript :原本不存在类这个概念

? ? ? ? 构造函数 来模拟类

? ? ? ? 其他类型的语言 ,创建对象->类

? ? ? ? 类:描述一系列相同类型事物的总称 ?人 动物

? ? ? ? 构造函数:js this的指向性问题

? ? ? ? 需要五个学生对象 ,创建一个学生类(构造函数 )

? ? ? ? 学生类:name,age,height ?方法 eat run

? ? ? ? 通常构造函数的首字母大写 类的首字母大写

? ? ? ? 构造函数方法

? ? ? ? 好处:1.量产 2.解决了工厂模式 无法分辨指定类型的问题

? ? ? ? 弊端:同样的方法,会开辟不同的存储空间,造成内存的大量消耗

????????function Student(name,age,height){

? ? ? ? ? ? this.name=name

? ? ? ? ? ? this.age=age

? ? ? ? ? ? this.height=height

? ? ? ? ? ? this.eat=function(){? ? //明明是同一种方法,但是不相等 ?每一个对象中eat方法,都有一个自己独立的存储空间

? ? ? ? ? ? ? ? console.log(this.name+'正在吃')

? ? ? ? ? ? }

? ? ? ? }

????????var s1=new Student("王一",21,180)

? ? ? ? var s2=new Student("王二",55,58)

new 做了什么? 面试题

? ? ? ? 1. 创建一个空对象 {}

? ? ? ? 2. 将构造函数中的this指向 空对象

? ? ? ? 3. 将构造函数中所有属性 和方法 都赋值给{}

? ? ? ? 4. 将对象返回

4、原型对象(将共用的方法 放到原型上 直接进行调用)

构造函数 :内存消耗 ? 共有的方法 写到原型中来节约内存 ?构造函数中原型 ==对象中的原型 __proto__

将共有的方法写到构造函数的原型中 ,实例化对象以后 就可以通过原型 拿到其方法

function Student(name,age,height){

? ? ? ? ? ? this.name=name

? ? ? ? ? ? this.age=age

? ? ? ? ? ? this.height=height

? ? ? ? }

Student.prototype.eat=function(){

? ? ? ? ? ? console.log(this.name+"正在吃")

? ? ? ? }

? ? ? ? var s1=new Student("王一",21,180)

? ? ? ? var s2=new Student("王二",22,222)

? ? ? ? s1.__proto__.run=function(){

? ? ? ? ? ? console.log(this.name+"正在跑")

? ? ? ? }

备注:

?开发过程中 ,存在各种各样的对象 比如:? 老师对象 ?学生对象

判断当前这个对象是否属于老师

?instanceof 用于检测对应的数据类型的(简单的数据类型 数值,字符,布尔 中,必须通过new 来创建的检测成功)

typeof() 返回数据类型

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:09:45  更:2021-12-06 15:11:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:42:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码