javascript原型继承详解与构造器理解

4星 · 超过85%的资源 需积分: 10 87 下载量 145 浏览量 更新于2024-08-02 1 收藏 300KB PDF 举报
本文档深入浅出地探讨了JavaScript中的原型继承机制,作者kittyjie在JavaEye社区分享了他的见解。JavaScript语言虽然没有像其他面向对象语言那样提供类的继承概念,但其原型系统(prototypal inheritance)是其核心特性之一。 首先,JavaScript的原型系统允许函数对象创建具有继承特性的新对象。当一个函数被创建时,它会自动附带一个名为`prototype`的属性,这是一个对象,包含了一个指向该函数自身的`constructor`属性。这与构造函数的概念紧密相连,但需要注意的是,`constructor`是对象实例的属性,而非函数本身的属性;相反,`prototype`是函数(即构造器)的属性。 作者强调了区分构造器、函数和对象实例的重要性。构造器本质上是函数,用于创建对象实例,而实例是通过调用构造函数并传递参数如`var obj = new MyObj(1);`来创建的。在这个例子中,`MyObj`是构造函数,`obj`是它创建的对象实例。 文档提到三种不同的继承方式:Prototype-based(原型继承)、Pseudoclassical(伪类继承,通常指的是基于构造函数的传统方式,尽管在JavaScript中不完全符合类的概念)、以及Parasitic Inheritance(寄生式继承,一种更为复杂且较少使用的继承策略)。原型继承是JavaScript中最常用和直观的继承方式,它利用原型链实现继承,即子对象可以访问和修改原型上的属性和方法。 总结来说,本文重点在于帮助读者理解JavaScript中的原型系统,包括原型、构造函数和实例的区别,以及如何通过原型链实现继承。这对于深入掌握JavaScript语言及其面向对象特性至关重要。阅读本文有助于开发者更好地利用JavaScript进行高效、灵活的编程。
2019-07-19 上传
onfire.js 是一个很简单的事件分发的Javascript库(仅仅 0.9kb),简洁实用。 可以用于: 简单的事件分发; 在 react / vue.js / angular 用于跨组件的轻量级实现; 事件订阅和发布; API方法: 1.on(event_name, callback) 绑定事件,参数为event_name和callback, 当有名字为event_name的事件发生的时候,callback方法将会被执行。 这个方法会返回一个eventObj,这个可以用于使用un(eventObj)方法来取消事件绑定。 2.one(event_name, callback) 绑定(订阅)事件,参数为 event_name with callback. 当被触发一次之后失效。只能被触发一次,一次之后自动失效。 3.fire(event_name, data) 触发名字为event_name的事件,并且赋予变量data为callback方法的输入值。 4.un(eventObj / eventName / function) 取消事件绑定。可以仅仅取消绑定一个事件回调方法,也可以直接取消全部的事件; 5.clear() 清空所有事件。 使用Demo: 1. 引入js文件 npm install onfire.js 可以使用[removed]标签直接引入; 也可以使用require或者import关键字引入,会得到全局变量 onfire。 import onfire from 'onfire.js'; // or var onfire = require("onfire.js"); 2. 简单使用 使用方法on来订阅事件, 使用un来取消订阅, 使用fire方法来触发事件。 import onfire from 'onfire.js'; // 绑定事件 var eventObj = onfire.on('test_event', function(data) {     console.log('this is a event 1'); }); var eventObj2 = onfire.on('test_event', function(data) {     console.log('this is a event 2'); }); // 触发事件 onfire.fire('test_event', 'test_data'); // 取消绑定 onfire.un(eventObj); // 取消绑定这个事件. onfire.un('test_event'); // 取消绑定所有的 `test_event`. 标签:onfire