JS基础-面向对象

简介: JavaScript、Java、c#.... 面向对象:JavaScript有些区别! 类:模板 原型对象 对象:具体的实例 在JavaScript这个需要大家换一下思维方式! 原型:

面向对象编程

什么是面向对象

JavaScript、Java、c#.... 面向对象:JavaScript有些区别! 类:模板 原型对象 对象:具体的实例 在JavaScript这个需要大家换一下思维方式! 原型:

var user={
    name:"稀土",
    age:3,
    run:function(){
      console.log(this.name+"run....")
    }
  }
  var lihua={
    name:"lihua"
  }
  lihua.__proto__=user

李华的原型是user

网络异常,图片无法展示
|

class继承

class关键字,是在ES6引入的

class student{
    constructor(name) {
      this.name=name
    }
    hello(){
      alert('hello')
    }
  }
  var xiaoming=new student("xiaoming")
复制代码

网络异常,图片无法展示
|

继承

class xiaoming extends student{
    constructor(name,grade) {
      super(name)
      this.grade=grade
    }
    mygrade(){
      alert("稀土掘金")
    }
  }
var xiaohong=new xiaoming("xiaohong",1) 

网络异常,图片无法展示
|

本质:查看对象原型

原型链

原型链:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么假如我们让原型对象等于另一个类型的实例,结果会怎样?显然,此时的原型对象将包含一个指向另一个原型的指针,相应地,另一个原型中也包含着一个指向另一个构造函数的指针。假如另一个原型又是另一个类型的实例,那么上述关系依然成立。如此层层递进,就构成了实例与原型的链条。

proto

当谈到继承时,JavaScript 只有一种结构:对象。每个实例对象(object)都有一个私有属性(称之为 proto )指向它的构造函数的原型对象(prototype)。该原型对象也有一个自己的原型对象(proto),层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节。

网络异常,图片无法展示
|


相关文章
|
JavaScript 前端开发 Java
深入JS面向对象(原型-继承)(一)
深入JS面向对象(原型-继承)
30 0
|
7月前
js- 面向对象进阶
Object.defineProperty等面向对象的信息
|
7月前
|
存储 JavaScript 前端开发
|
2月前
|
设计模式 前端开发 JavaScript
深入认识:JavaScript中的面向对象
深入认识:JavaScript中的面向对象
12 0
|
3月前
|
Web App开发 JavaScript 前端开发
深度刨析 JavaScript 模拟面向对象的内部机制
深度刨析 JavaScript 模拟面向对象的内部机制
79 0
|
3月前
|
存储 JavaScript 前端开发
【JavaScript】<面向对象Object>函数方法&对象创建&原型对象&作用域解析
【1月更文挑战第17天】【JavaScript】<面向对象Object>函数方法&对象创建&原型对象&作用域解析
|
3月前
|
存储 JSON 前端开发
JavaScript:构造函数&面向对象
JavaScript:构造函数&面向对象
36 2
|
8月前
|
设计模式 JavaScript 前端开发
js面向对象入门
js面向对象入门
56 0
|
3月前
|
存储 JavaScript 前端开发
JavaScript知识总结 终结篇--面向对象,垃圾回收与内存泄漏
JavaScript知识总结 终结篇--面向对象,垃圾回收与内存泄漏
|
7月前
|
存储 JavaScript
js-面向对象
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。