当前位置:首页 > JavaScript

js 实现面向对象

2026-01-30 11:15:52JavaScript

基于原型的面向对象实现

JavaScript 使用原型链实现面向对象编程。每个对象都有一个隐藏属性 [[Prototype]](可通过 __proto__Object.getPrototypeOf() 访问),当访问对象属性时,若当前对象不存在该属性,会沿原型链向上查找。

构造函数通过 new 关键字创建实例:

function Person(name) {
  this.name = name;
}
Person.prototype.sayHello = function() {
  console.log(`Hello, I'm ${this.name}`);
};
const person = new Person('Alice');
person.sayHello(); // 输出: Hello, I'm Alice

类语法(ES6)

ES6 引入 class 语法糖,本质仍是基于原型的实现:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} makes a noise`);
  }
}
class Dog extends Animal {
  speak() {
    super.speak();
    console.log(`${this.name} barks`);
  }
}
const dog = new Dog('Rex');
dog.speak();

对象字面量与工厂模式

通过对象字面量直接创建对象:

const car = {
  brand: 'Toyota',
  drive() {
    console.log(`Driving ${this.brand}`);
  }
};

工厂函数模式:

function createUser(name) {
  return {
    name,
    logName() {
      console.log(this.name);
    }
  };
}
const user = createUser('Bob');

属性描述符与对象控制

使用 Object.defineProperty 定义属性特性:

const obj = {};
Object.defineProperty(obj, 'readOnlyProp', {
  value: 42,
  writable: false,
  enumerable: true
});

混入(Mixin)模式

实现多重继承的方式:

const canEat = {
  eat() {
    console.log('Eating');
  }
};
const canWalk = {
  walk() {
    console.log('Walking');
  }
};
function Person() {}
Object.assign(Person.prototype, canEat, canWalk);

js 实现面向对象

标签: 面向对象js
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Jav…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-contain…