JavaScript继承特性的一种实现

deltamaster posted @ Aug 18, 2011 11:14:55 AM in JavaScript with tags javascript prototype 继承 , 2590 阅读

  上次讲到了JavaScript实现封装的特性,那么JavaScript能否模拟继承的特性呢?

var User = function() {
	this.username = 'username';
	this.password = 'password';
}

User.prototype.toString = function() {	
	return this.username + ':' + this.password;
};

  这个是上次所写的User的定义。现在我们要新建一个Student,使其具有User的所有属性,和就类似与继承特性。

var extend = function(derived, base) {
	baseObj = new base();
 	for (property in baseObj) {
 		derived.prototype[property] = baseObj[property];
 	}
}

var Student = function() {
	this.studentNumber = '11111';
}

extend(Student, User);

var student = new Student();

document.write(student);

  extend方法是为了模拟继承特性,函数体很简单,首先新建一个“基类”的对象,然后将“基类”对象中的所有属性,放到“派生类”的prototype中,就使得derived的对象可以访问到所有base对象具有的属性。

  实际操作时,我们首先创建一个Student,并且定义其相对与User不同的部分。随后调用extend函数进行“继承”,使其具有User构造的对象的所有属性。

  然后尝试使用Student来构造一个student对象。

* 本文在CC BY-SA(署名-相同方式共享)协议下发布。
photoshop generative 说:
Jul 21, 2023 11:42:46 PM

Adobe Photoshop hat kürzlich ein neues Tool namens Generative Fill veröffentlicht, das die KI-Technologie Firefly nutzt, um Benutzern dabei zu helfen, ihre Fotos auf aufregende Weise zu verbessern. photoshop generative fill aktivieren Dieses Tool ermöglicht Benutzern das einfache Erweitern von Fotos, das Hinzufügen oder Entfernen von Objekten mithilfe einfacher Textaufforderungen und bietet im Vergleich zu anderen Tools wie Content-Aware Fill mehr Kontrolle.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter