| |
|
开发:
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项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |