美文网首页
j s面向对象基础

j s面向对象基础

作者: 拾光逐梦 | 来源:发表于2018-12-07 14:54 被阅读0次
什么是面向对象

在不了解原理的情况下,会使用功能
对象:黑盒子,不了解内部的结构,知道表面的各种操作(按钮)
面向对象是一种通用思想,并非只有变成中能用,任何事情都可以使用。比如:公司老总只需要告诉公司负责人需要做什么,不去关注其怎么实现的。

JS中的面向对象(OOP)
三大特性:
  • 抽象:抓住核心(把和问题相关的一类特性抓出来)
  • 封装:不考虑内部实现,用好表面的功能
  • 继承:(遗传)从父类上继承出一些方法、属性,子类可以重用,也可以有新的一些特性。
    继承有多重继承多肽
对象的组成:
  • 方法:属于一个对象的
   function aaa () {    // 函数:自由的
      alert('aaa')
    }

    var arr = [1, 4, 5, 3]
    arr.aaa = function () {       // 方法:属于一个对象的
      alert('afg')
    }
  • 属性:属于一个对象的(有主的)
    var a = 12  //变量:自由的,不属于任何人
    alert(a)

    var arr = [1, 4, 5, 3]
    arr.a = 12    // 属性,属于一个对象的
    alert(arr.a)

this:当前发生事件的对象。更准确的说:当前方法属于谁,this就是谁
不能在系统对象中随意附加方法、属性,否则会覆盖已有方法、属性:不要给arr等添加方法。

Object

构造函数
缺点:

  1. 没有new
  2. 函数重复 --- 资源浪费

解决:

  • 不需要var obj = new Object,直接使用this,此时的this是一个新的对象,不需要在return,因为程序有偷偷地return this
 function createPerson (name, age) {
 this.name = name
 this.age = age
 this.showName = function () {
  alert('我叫' + this.name)
 }
 this.showAge = function () {
  alert('我叫' + this.age)
 }
}
var person1 = new createPerson('luuz', 18)      // 解决没有new的问题
  • 原型(prototype):类的原型上添加东西
    帮助理解:
    css - class:一次给一组元素加样式。在js就叫做原型
var arr1 = new Array(12, 35, 43, 3)
var arr2 = new Array(4, 7, 43, 6)
Array.prototype.sum = function () {          // 类似class
 var result = 0
 for (var i = 0; i < this.length; i++) {
  result += this[i]
 }
 return result
}
alert(arr1.sum())
alert(arr2.sum()) 

css - 行间样式: 一次给一个元素加样式。在js叫做给对象加东西

var arr1 = new Array(12, 35, 43, 3)
var arr2 = new Array(4, 7, 43, 6)
arr1.sum = function () {              // 只给arr1添加事件,对比行间样式
 var result = 0
 for (var i = 0; i < this.length; i ++){
   result += this.[i]
  }
 return result;
}
alert(arr1.sum())
alert(arr2.sum())        // 报错

类和对象:
var arr = new Array()
类: 模子 Array
对象: 产品(成品) arr

原型用到面向对象里边?(混合方式)
function CreatePerson (name, age) {
 this.name = name
 this.age = age
}
CreatePerson.prototype.showName = function () {
  alert('我叫' + this.name)
}
CreatePerson.prototype.showAge = function () {
  alert('今年' + this.age)
}
var person1 = new CreatePerson('luuz', 23)
var person2 = new CreatePerson('luuuuu', 18)
alert(person1.showName == person2.showName)        // true (都是来源于原型上)

构造函数加属性(不一样的东西),原型上加事件(一样的东西)
类的命名规范:大驼峰(首字母大写)

相关文章

  • j s面向对象基础

    什么是面向对象 在不了解原理的情况下,会使用功能对象:黑盒子,不了解内部的结构,知道表面的各种操作(按钮)面向对象...

  • (转载)Java 工程师成神之路

    基础篇 01面向对象 → 什么是面向对象面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台无关性J...

  • 2019-07-23

    java 基础 基础语法: 1-2天 编程思想: 面向对象 封装,继承,多态 高级应用 : 线程;IO; 网络 J...

  • swift基础语法(十一)——类

    介绍 Swift也是一门面向对象开发的语言 面向对象的基础是类,类产生了对象 在Swift中定义类:class是S...

  • 秋招面试总结:Java+并发+Spring+MySQL+分布式+

    第一部分 Java相关 1.1 JAVA基础 面向对象和面向过程的区别 Java 语言有哪些特点 关于 JVM J...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • Java基础03面向对象

    Java 基础02Java编程基础 面向对象上 面向对象的概述 面向对象的概述:面向对象是一种符号人类思维习惯的编...

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • java基础回顾(2)

    面向对象:是基于面向过程的一种思想。 面向过程:以函数为基础,关注实现过程。 面向对象:以对象为基础,关注实现结果...

  • 面向对象

    title:面向对象tags: 基础,Java 面向对象 面向对象程序设计简介 面向对象的基本思想是使用类、对象、...

网友评论

      本文标题:j s面向对象基础

      本文链接:https://www.haomeiwen.com/subject/gdvacqtx.html