文章目录

  • JavaScript对象及初识面向对象
    • 1、对象
      • 1.1 对象的概念
      • 1.2 内置对象
      • 1.3 自定义对象
        • 1.3.1 操作符new创建对象
        • 1.3.2 使用字面量赋值的方式定义对象
    • 2、构造函数
      • 2.1 什么是构造函数
      • 2.2 构造函数的应用
    • 3、原型对象
      • 3.1 什么是原型对象
      • 3.2 对象之间的关系
    • 4、继承
      • 4.1 原型链
        • 4.1.1 什么是原型链
        • 4.1.2 构造函数和原型之间的关系
        • 4.1.3 完整的原型链
      • 4.2 对象继承
        • 4.2.1 借用构造函数
        • 4.2.2 组合继承
  • 总结

JavaScript对象及初识面向对象

1、对象

1.1 对象的概念

  1. 对象是包含相关属性和方法的集合体
  2. 面向对象仅仅是一个概念或者编程思想
  3. JavaScript 通过一种叫做原型的方式来实现对象对象编程

1.2 内置对象

常见的内置对象

  • String( 字符串 ) 对象
    * lentth属性
    * indexOf(),replace()方法
  • Date( 日期 ) 对象
    * getxxx : 获取年、月、日、时、分、秒等等
    * setxxx : 设置年、月、日、时、分、秒等等
  • Array( 数组 ) 对象
    * lentth属性
    * sort(),concat(),join()方法
  • Boolean( 逻辑 ) 对象
    * true或者false
    * toString()方法
    5 Math( 算数 ) 对象
    * round(),max(),min()方法
    * …
  • RegExp 对象
    * RegExp 是正则表达式的缩写

1.3 自定义对象

1.3.1 操作符new创建对象

基于Object对象的方式创建对象

var 对象名称 = new Object();
var flower = new Object();
flower.name = "长春花";
flower.genera = "夹竹桃科 长春花属";
flower.area = "非洲、亚热带、热带以及中国大陆的华东、西南、中南等地";
flower.uses = "观赏或用药等";
flower.showName = frunction() {alert(this.name);
}
flower.showName();

1.3.2 使用字面量赋值的方式定义对象

var flower = {name = "长春花";genera = "夹竹桃科 长春花属";area = "非洲、亚热带、热带以及中国大陆的华东、西南、中南等地";uses = "观赏或用药等";showName:frunction() {alert(this.name);}
}
flower.showName();

2、构造函数

2.1 什么是构造函数

2.2 构造函数的应用

  • 创建构造函数
  • 使用构造函数创建对象
  • 使用构造函数创建新实例
    • 使用构造函数创建对象
      1、创建一个新对象
      2、将构造函数的作用域赋给新对象(this 就指向了这个新对象)
      3、执行构造函数中的代码
      4、返回新对象

3、原型对象

3.1 什么是原型对象

function Flower() {}
Flower.prototype.name = "长春花";
Flower.prototype.genera = "夹竹桃科 长春花属";
Flower.prototype.genera = "夹竹桃科 长春花属";
Flower.prototype.area = "非洲、亚热带、热带以及中国大陆的华东、西南、中南等地";
Flower.prototype.showName = frunction() {alert(this.name);
}
var flower1 = new Flower();
flower1.showName();
var flower2 = new Flower();
flower2.showName();
alert(flower1.showName == flower2.showName)

3.2 对象之间的关系

function Flower() {}
Flower.prototype.name = "长春花";
Flower.prototype.genera = "夹竹桃科 长春花属";
Flower.prototype.genera = "夹竹桃科 长春花属";
Flower.prototype.area = "非洲、亚热带、热带以及中国大陆的华东、西南、中南等地";
Flower.prototype.showName = frunction() {alert(this.name);
}
var flower1 = new Flower();
var flower2 = new Flower();
flower1.name = "曼陀罗花";
alert(flower1.name);
alert(flower2.name);

4、继承

4.1 原型链

4.1.1 什么是原型链

  • 一个原型对象是另一个原型对象的实例
  • 相关的原型对象层层递进,就构成了实例与原型的链条,这就是原型链
function Humans() {this.foot = 2;
}
Humans.prototype.getFoot = function() {return this.foot;
}
function Man() {this.head = 1;
}
Man.prototype = new Humans(); //继承了Humans
Man.prototype.getHead = function() {return this.head;
}
var man1 = new Man();
alert(man1.getFoot());          // 2
alert(man1 instanceof Object);  // true
alert(man1 instanceof Humans);  // true
alert(man1 instanceof Man);     // true

4.1.2 构造函数和原型之间的关系


调用man1.getFoot() 经历的三个步骤

  1. 搜索实例
  2. 搜索Man.prototype
  3. 搜索Humans.prototype

4.1.3 完整的原型链

Object 在原型链中的位置

4.2 对象继承

function Humans() {this.clothing = ["trousers","dress","jecket"]
}
function Man() {}
//继承了Humans
Man.prototype = new Humans();
var man1 = new Man();
man1.clothing.push("coat");
alert(man1.clothing());
var man2 = new Man();
alert(man2.clothing());
  • man1.clothing()和man2.clothing()输入的信息一样,为什么?
    创建子类型的实例时,不能向父类型的构造函数中传递参数

4.2.1 借用构造函数

语法: apply([thisOjb[,argArray]])

应用某一对象的一个方法,用另一个对象替换当前对象

语法: call([thisOjb[,arg1[,arg2[,argN]]]]])

调用一个对象的一个方法,以另一个对象替换当前对象

function Humans(name) {this.name = name;
}
function Man() {Humans.call(this."mary"); // 继承了Humans,同时还传递了参数this.age = 38; // 实例属性
}
var man1 = new Man();
alert(man1.name()); // 输出mary
alert(man2.age());  // 输出38

4.2.2 组合继承

组合继承:有时也叫做伪经典继承

  • 将原型链和借用构造函数的技术组合到一块,发挥二者之长的一种继承模式
  • 使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承

总结

JavaScript基础——第四章,JavaScript对象及初识面向对象相关推荐

  1. Javascript基础与面向对象基础~第四讲 Javascript中的类对象

    今天来说JS中如何实现类(class),事实上本应该昨天晚上写的,可我失言了,在些说一声"抱歉"!JS中的类是JS面向对象的基础,也是我最拿手的东西,你写的代码能否提高一个层次,一 ...

  2. 大学计算机ppt操作表格,大学计算机应用基础第四章 电子表格软件Exc.ppt

    大学计算机应用基础第四章 电子表格软件Exc.ppt (47页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 第四章电子表格Excel 20 ...

  3. 大学计算机基础第四章ppt,大学计算机基础第四章.ppt

    <大学计算机基础第四章.ppt>由会员分享,可在线阅读,更多相关<大学计算机基础第四章.ppt(38页珍藏版)>请在装配图网上搜索. 1.大学计算机基础 (第2版),第4章 数 ...

  4. 计算机软件基础第四章答案,计算机应用基础第四章

    <计算机应用基础第四章>由会员分享,可在线阅读,更多相关<计算机应用基础第四章(3页珍藏版)>请在人人文库网上搜索. 1.1[单选题]使图片按比例缩放应选用().窗体顶端A.拖 ...

  5. 第四章计算机基础,大学计算机基础第四章.ppt

    <大学计算机基础第四章.ppt>由会员分享,可在线阅读,更多相关<大学计算机基础第四章.ppt(38页珍藏版)>请在人人文库网上搜索. 1.大学电脑基础(版本2).第4章数据库 ...

  6. 二进制除法教程计算机基础,计算机应用基础第四章《二进制的学习》课件.ppt...

    <计算机应用基础第四章<二进制的学习>课件.ppt>由会员分享,可在线阅读,更多相关<计算机应用基础第四章<二进制的学习>课件.ppt(26页珍藏版)> ...

  7. Web前端开发笔记——第四章 JavaScript程序设计 第一节 JavaScript的基础语法

    目录 一.JavaScript的定义 二.代码的创建和使用 (一)内嵌JavaScript代码 (二)引用JavaScript文件 三.代码的注释 四.输出数据 (一)alert()弹出警告框 (二) ...

  8. JavaScript基础(四)对象、数组、对象与数组的常用API

    目录 一.对象 1. 对象的创建 2. 对象属性的访问 3. 遍历对象属性 4. 检测属性是否存在 5. 对象的方法 二.数组对象 1. 数组的创建 2. 访问数组 3. 数组长度 4. 数组的遍历 ...

  9. JavaScript进阶 - 第9章 DOM对象,控制HTML元素

    第9章 DOM对象,控制HTML元素 9-1 认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属 ...

最新文章

  1. 综述 | Google-斯坦福发布深度学习统计力学
  2. aauto+java_高可用数据采集平台(如何玩转3门语言php+.net+aauto)
  3. PHP7CMS 无条件前台GETSHELL
  4. 中国碳酸氢钠干粉灭火剂市场产量规模与未来竞争走势研究报告2022年
  5. pythonzerojudge题库及答案_大学mooc2020用Python玩转数据试题及答案
  6. Longest Substring Without Repeating Characters
  7. sqldiag 工具
  8. python重定向反爬虫_高效实用http爬虫代理ip之盘点一些网站的反爬虫机制
  9. Python编程实例(4)
  10. QQ输入法新功能设计文档
  11. 解决QQ邮箱接收不到Stream邮件问题
  12. 基于Proteus学习单片机系列(十)——LCD1602
  13. 邮局问题【python】【c++】
  14. 遥感图像场景分类方法总结
  15. 从Windows用scp往linux里传输文件
  16. IntelliJ IDEA使用教程(动图详解):实时代码模板的使用
  17. 邓仲祥:用甘肃地名命名的和政化石标本
  18. RK3228H开发之准备、编译烧写整理
  19. [CodeForces908G]New Year and Original Order
  20. JavaScript 之 对象及其本身

热门文章

  1. 苹果老板乔布斯在斯坦福大学的演讲
  2. 程序员技术怀旧_晒晒那些过去的经典
  3. 电池_电池容量的测试——手机、电池、充电器三件套之电池篇3
  4. Python最好的就业方向
  5. 狗眼看人低的十种职业~
  6. 华为云首次突发大面积故障,网友哀嚎一片
  7. 统一用户单点登录系统
  8. SPL 工业智能:识别指定工况
  9. cad快捷图标中的启动参数
  10. 怎样判断三角形的顶点是逆时针方向还是顺时针方向