当前位置:首页 > 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 语法糖,本质仍是基于原型的实现:

js 实现面向对象

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}`);
  }
};

工厂函数模式:

js 实现面向对象

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实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…