前  言

S     N

今天给大家详解一下面向对象编程(简称OOP)基础,OOP 语言使我们有能力定义自己的对象和变量类型 。对象拥有属性和方法 所以今天就给大家详解对象和类 。

1-1简介

1、语言的分类:
                ①  面向机器:汇编语言
                ②  面向过程:C语言
                ③  面向对象: C++ java PHP 等
  2、面向过程与面向对象
              ①  面向过程:专注于如何解决一个问题的过程步骤,编程特点是由一个个的函数去实现每一步的过程步骤,没有类和对象的概念。
              ②  面向对象:专注于由哪一个对象来解决这个问题,编程特点是出现了一个类,从类中拿到对象,由这个对象去解决具体问题。
      总结:    对于调用者来说,面向过程需要调用者自己去实现各种函数,而面向对象,只需要告诉调用者对象中具体方法的功能而不需要调用者了解方法中的实现细节。
            
           [面向对象的三大特征] 继承、封装、多态
            
          JS可以模拟实现继承和封装,但是无法模拟实现多态,所以我们说JS是一门基于对象的语言,而并非是面向对象的语言

1-2类和对象

1、类:一类具有想用特征(属性)和行为(方法)的集合,
    例:人类-->属性:身高、体重、性别    方法:吃饭、说话、走路
2、对象:从类中拿出具有确定属性值和方法的个体。
    例:小明-->属性:身高180,体重180 方法:说话-->我叫小明,身高180。
最重要的类和对象的关系:
  类是抽象的,对象是具体的(类是对象的抽象化,对象是类的具体化)。
       类:是一个抽象的概念只能说类有属性和方法,但是不能给属性赋具体的值
               比如,人类有名,但是不能说人类的姓名叫什么。。。

  对象:是一个具体的个例,是将类中的属性进行具体赋值而来的个体。
             比如,小明是人类的一个个体,可以说小明的姓名叫小明,也就是小明对人类的每一个属性进行了具体的赋值,那么小明就是由人类产生的一个对象。
    

1-3使用类和对象的步骤

  ① 创建一个类(构造函数):类名必须使用大驼峰法则,即每个单词首字母都要大写。
function 类名(属性1){
this.属性1 = 属性1;
this.方法 = function(){
//方法中要调用自身属性,必须使用this,属性
}
}
     ②通过类,实例化(new)出一个对象。
    var  obj = new 类名(属性1的具体值);
               obj.属性;调用属性。
               obj.方法();调用方法。
注意事项:
   >>> 通过类名,nwe出一个对象的过程,叫做"类的实例话"
     >>> 类中的this,会在实例化的时候。指向新new出的对象。 所以,this.属性this.方法,实际上是将属性和方法绑定在即将new出的对象上面。
     >>> 在类中,要调用自身属性,必须使用this.属性名,如果直接使用变量名,则无法访问对应的属性。
     >>> 类名必须使用大驼峰法则,注意与普通函数区分。

1-4OOP中的两个重要属性

  ① constructor: 返回当前对象的构造函数。
         >>> XiaoMing.constructor == Person;  √
       
  ② instanceof: 检测一个对象,是不是一个类的示例;
           >>> XiaoMing instanceof Person   √XiaoMing是通过Person类new出的
           >>> XiaoMing instanceof Object   √ 所有对象都是Object的实例
           >>> Person instanceof Object √ 函数本身也是对象
请看以下代码  ↓↓↓
function Person(name,age){
this.name = name;
this.age = age;
}
var XiaoMing = new Person();
XiaoMing.age = ;
XiaoMing.name = "李四"; console.log(XiaoMing);
console.log(XiaoMing.constructor == Person); console.log(XiaoMing instanceof Person);
console.log(XiaoMinginstanceof Object);
console.log(Person instanceof Object);

1-5广义对象与狭义对象

① 狭义对象: 只有属性和方法,除此之外没有任何其他内容。
       var obj = {}     var obj = new Object(); 
② 广义对象: 除了用字面量声明的基本数据类型之外,JS中万物皆对象。 换句话说,只要能够添加属性和方法的变量,都可以称为对象;
     *         var s = "123";   // 不是对象
     *         s.name = "aaa";
     *         console.log(typeof s); // String
     *         console.log(s.name); // undefined 字面量声明的字符串不是对象,不能添加属性;
     *
     *         var s = new String("123");   // 是对象
     *         s.name = "aaa";
     *         console.log(typeof s); // Object
     *         console.log(s.name); // "aaa" 使用new关键声明的字符串是对象,可以添加属性和方法
var s = ""; // 不是对象
console.log(typeof(s));
console.log(s); s.name = "字符串";
console.log(typeof(s));
console.log(s);
console.log(s.name); var s1 = new String("");//是对象
console.log(typeof(s1));
console.log(s1); s1.name = "字符串";
console.log(typeof(s1));
console.log(s1);
console.log(s1.name);

  后  序

S     N

      嗯! 今天就先给大家讲解这么多啦,毕竟是一些入门的知识,更深入的还需要大家自己学习不是 。就这样吧还是希望给大家一点帮助。

javascript-OOP基础详解的更多相关文章

  1. javaScript基础详解(1)

    javaScript基础详解 首先讲javaScript的摆放位置:<script> 与 </script> 可以放在head和body之间,也可以body中或者head中 J ...

  2. Android中Canvas绘图基础详解(附源码下载) (转)

    Android中Canvas绘图基础详解(附源码下载) 原文链接  http://blog.csdn.net/iispring/article/details/49770651   AndroidCa ...

  3. 深入浅出DOM基础——《DOM探索之基础详解篇》学习笔记

    来源于:https://github.com/jawil/blog/issues/9 之前通过深入学习DOM的相关知识,看了慕课网DOM探索之基础详解篇这个视频(在最近看第三遍的时候,准备记录一点东西 ...

  4. java继承基础详解

    java继承基础详解 继承是一种由已存在的类型创建一个或多个子类的机制,即在现有类的基础上构建子类. 在java中使用关键字extends表示继承关系. 基本语法结构: 访问控制符 class 子类名 ...

  5. java封装基础详解

    java封装基础详解 java的封装性即是信息隐藏,把对象的属性和行为结合成一个相同的独立单体,并尽可能地隐藏对象的内部细节. 封装的特性是对属性来讲的. 封装的目标就是要实现软件部件的"高 ...

  6. Dom探索之基础详解

    认识DOM DOM级别 注::DOM 0级标准实际并不存在,只是历史坐标系的一个参照点而已,具体的说,它指IE4.0和Netscape Navigator4.0最初支持的DHTML. 节点类型 注:1 ...

  7. 从mixin到new和prototype:Javascript原型机制详解

    从mixin到new和prototype:Javascript原型机制详解   这是一篇markdown格式的文章,更好的阅读体验请访问我的github,移动端请访问我的博客 继承是为了实现方法的复用 ...

  8. JavaScript严格模式详解

    转载自阮一峰的博客 Javascript 严格模式详解   作者: 阮一峰 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict m ...

  9. [转]javascript console 函数详解 js开发调试的利器

    javascript console 函数详解 js开发调试的利器   分步阅读 Console 是用于显示 JS和 DOM 对象信息的单独窗口.并且向 JS 中注入1个 console 对象,使用该 ...

  10. javascript 节点属性详解

    javascript 节点属性详解 根据 DOM,html 文档中的每个成分都是一个节点 DOM 是这样规定的:整个文档是一个文档节点每个 html 标签是一个元素节点包含在于 html 元素中的文本 ...

随机推荐

  1. 团队作业4----第一次项目冲刺(Alpha版本)4.28

    a.提供当天站立式会议照片 会议内容 今天我们主要针对统计结果的表现形式进行了一些讨论,我们考虑是直接显示统计数据或者是用一些直观的图形来体现,最后经过讨论我们大部分人认为选择数据与图形更加形象直观. ...

  2. 团队作业4——第一次项目冲刺(Alpha版本)4.25

    团队作业4--第一次项目冲刺(Alpha版本) Day four: 会议照片 每日站立会议: 项目进展 今天是项目的Alpha敏捷冲刺的第四天,先大概整理下昨天已完成的任务以及今天计划完成的任务.今天 ...

  3. 201521123075 《Java程序设计》第2周学习总结

    1. 本周学习总结 各种数据类型,运算符,表达式的使用: 字符串String类; 对数组对象和字符串对象的运用. 2. 书面作业 1.使用Eclipse关联jdk源代码,并查看String对象的源代码 ...

  4. 201521123116 《java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. ①关系型数据库的定义:使用表(table)来存储数据:使用行(row)区分不同- 记录,每行代表一条记录:每一行 ...

  5. Sql Server——基础

    前言: 在了解数据库之前,我们应该首先了解一下和数据库有关的知识,如:什么是数据,什么又是数据库等.  数据:描述事物的符号记录称为数据,它是数据库中存储的基本对象.  数据库(Datebase):数 ...

  6. 王者荣耀是怎样炼成的(三)unity组件与脚本

    转载请注明出处:http://www.cnblogs.com/yuxiuyan/p/7565345.html 上回书说到了unity的基本操作.这回我们来侃侃unity中的组件与脚本. 目录结构 一. ...

  7. MapReduce三种join实例分析

    本文引自吴超博客 实现原理 1.在Reudce端进行连接. 在Reudce端进行连接是MapReduce框架进行表之间join操作最为常见的模式,其具体的实现原理如下: Map端的主要工作:为来自不同 ...

  8. 《JavaScript闯关记》视频版硬广

    <JavaScript闯关记>视频版硬广 stone 在菜航工作时,兼任内部培训讲师,主要负责 JavaScript 基础培训,2016年整理的<JavaScript闯关记>课 ...

  9. 杂谈--DML触发器学习

    触发器按类型分为三类: 1. DML 触发器,在数据变更时触发: 2. DDL 触发器,在修改数据库级别或实例级别对象时触发: 3. Login 触发器,在用户登录时触发: 最常见的是DML触发器,D ...

  10. 翻译:MariaDB ALTER TABLE语句

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...