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 没有原型,并作为这个原型链中的最后一个环节。

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


相关文章
|
6月前
|
JavaScript 前端开发 Java
深入JS面向对象(原型-继承)(三)
深入JS面向对象(原型-继承)
53 0
|
6月前
|
JavaScript 前端开发 Java
深入JS面向对象(原型-继承)(一)
深入JS面向对象(原型-继承)
59 0
js- 面向对象进阶
Object.defineProperty等面向对象的信息
|
存储 JavaScript 前端开发
|
5月前
|
设计模式 JavaScript 前端开发
【JavaScript】深入浅出JavaScript继承机制:解密原型、原型链与面向对象实战攻略
JavaScript的继承机制基于原型链,它定义了对象属性和方法的查找规则。每个对象都有一个原型,通过原型链,对象能访问到构造函数原型上的方法。例如`Animal.prototype`上的`speak`方法可被`Animal`实例访问。原型链的尽头是`Object.prototype`,其`[[Prototype]]`为`null`。继承方式包括原型链继承(通过`Object.create`)、构造函数继承(使用`call`或`apply`)和组合继承(结合两者)。ES6的`class`语法是语法糖,但底层仍基于原型。继承选择应根据需求,理解原型链原理对JavaScript面向对象编程至关重要
121 7
【JavaScript】深入浅出JavaScript继承机制:解密原型、原型链与面向对象实战攻略
|
6月前
|
前端开发 JavaScript
前端 JS 经典:Class 面向对象
前端 JS 经典:Class 面向对象
36 1
|
6月前
|
JavaScript 前端开发
JavaScript 原型链继承:掌握面向对象的基础
JavaScript 原型链继承:掌握面向对象的基础
|
6月前
|
JavaScript 前端开发 API
在Node.js上使用dojo库进行面向对象web应用开发
请注意,虽然这个例子在Node.js环境中使用了Dojo,但Dojo的许多功能(例如DOM操作和AJAX请求)在Node.js环境中可能无法正常工作。因此,如果你打算在Node.js环境中使用Dojo,你可能需要查找一些适用于服务器端JavaScript的替代方案。
64 0
|
6月前
|
JSON JavaScript 前端开发
深入JS面向对象(原型-继承)(四)
深入JS面向对象(原型-继承)
48 0
|
6月前
|
设计模式 JavaScript 前端开发
深入JS面向对象(原型-继承)(二)
深入JS面向对象(原型-继承)
64 0