理解 JavaScript 中的自定义对象
在 JavaScript 中创建自定义对象需要在两种主要方法之间进行选择:原型方法和闭包方法。
原型设计方式
原型方式,基于原型对象来创建对象。定义构造函数,并将方法和属性添加到其原型属性中。继承是通过使用 subclassOf() 辅助函数来实现的。
闭包方式
在闭包方式中,每个对象都是一个独立的实体,拥有自己的副本方法和属性。方法的副本不是继承,而是作为闭包传递。默认情况下,它指的是当前对象,这有助于事件处理。
使用哪种方式
最佳方法取决于您的具体需求:
自定义对象的示例代码
使用原型方法:
function Shape(x, y) { this.x = x; this.y = y; } Shape.prototype.toString = function() { return 'Shape at ' + this.x + ', ' + this.y; }; function Circle(x, y, r) { Shape.call(this, x, y); this.r = r; } Circle.subclass(Shape); Circle.prototype.toString = function() { return 'Circle at ' + this.x + ', ' + this.y + ', with radius ' + this.r; };
使用关闭方式:
function Shape(x, y) { var that = this; that.x = x; that.y = y; that.toString = function() { return 'Shape at ' + that.x + ', ' + that.y; }; } function Circle(x, y, r) { Shape.call(this, x, y); this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circle at ' + _baseToString.call(that) + ', with radius ' + this.r; }; }
以上是JavaScript 中的原型与闭包:我应该使用哪种方法来创建自定义对象?的详细内容。更多信息请关注PHP中文网其他相关文章!