我想知道创建一个具有属性和方法的JavaScript对象的最佳方法是什么.
我已经看到了这个人在所有函数中使用var self = this然后使用的示例,self.以确保范围始终正确.
然后我看到了使用.prototype添加属性的示例,而其他人则使用内联方式.
有人可以给我一个具有一些属性和方法的JavaScript对象的正确示例吗?
我正在重写一个JavaScript项目,我希望能够使用面向对象的方法来组织当前代码的混乱.主要关注的是这个JavaScript应该作为第三方网站内的一个小部件运行,我不能让它与其他网站可能使用的其他JavaScript库冲突.
所以我正在寻找一种在JavaScript中编写"类类"继承的方法,它具有以下要求:
super类型调用.最初我尝试使用简单的原型链接:
function Shape(x,y) {
this.x = x;
this.y = y;
this.draw = function() {
throw new Error("Arbitrary shapes cannot be drawn");
}
}
function Square(x,y,side) {
this.x = x;
this.y = y;
this.side = side;
this.draw = function() {
gotoXY(this.x,this.y); lineTo(this.x+this.side, this.y); ...
}
}
Square.prototype = new Shape();
Run Code Online (Sandbox Code Playgroud)
这解决了需求1,2和6,但id不允许超级调用(新函数覆盖父函数),构造函数链接和动态扩展父级不会为子类提供新方法.
欢迎任何建议.