相关疑难解决方法(0)

如何在JavaScript中"正确"创建自定义对象?

我想知道创建一个具有属性和方法的JavaScript对象的最佳方法是什么.

我已经看到了这个人在所有函数中使用var self = this然后使用的示例,self.以确保范围始终正确.

然后我看到了使用.prototype添加属性的示例,而其他人则使用内联方式.

有人可以给我一个具有一些属性和方法的JavaScript对象的正确示例吗?

javascript

464
推荐指数
7
解决办法
13万
查看次数

什么是一个很好的简约Javascript继承方法?

我正在重写一个JavaScript项目,我希望能够使用面向对象的方法来组织当前代码的混乱.主要关注的是这个JavaScript应该作为第三方网站内的一个小部件运行,我不能让它与其他网站可能使用的其他JavaScript库冲突.

所以我正在寻找一种在JavaScript中编写"类类"继承的方法,它具有以下要求:

  1. 没有外部库或与外部库冲突的东西(阻止从外部库复制和粘贴).
  2. 简约 - 我不希望支持代码比几行代码更大,我不希望开发人员每次定义新的类或方法时都需要大量的样板.
  3. 应该允许动态扩展父对象,以便子对象看到更改(原型).
  4. 应该允许构造函数链接.
  5. 应该允许super类型调用.
  6. 还应该感受到JavaScript-ish.

最初我尝试使用简单的原型链接:

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不允许超级调用(新函数覆盖父函数),构造函数链接和动态扩展父级不会为子类提供新方法.

欢迎任何建议.

javascript oop inheritance

6
推荐指数
1
解决办法
1831
查看次数

标签 统计

javascript ×2

inheritance ×1

oop ×1