我想知道这样的事情是否可能发生:
基本类A
派生类B1来自一个实例a of class A (即a = new A() )
派生类B2来自同实例a of A
我举一个例子:
var a = new A();
function A() {
this.var_test = 0;
this.test = function () {
alert(this.var_test++);
}
}
function B1() {
}
B1.prototype = a;
function B2() {
}
B2.prototype
在不同的文件之间链接JavaScript函数的最好方法是什么?在本例中,BusinessObjectCategories()和BusinessAddSiteStatusFunctionalities()是未定义的,因为函数在另一个页面中。我应该在JavaScript中获取全局对象吗?
**Doo.js**
var Doo = new DooObject();
**Doo.Business.js**
function BusinessObject() {}
if (typeof Doo != undefined) {
Doo.Business = new BusinessObje
我发现(并编写)了一种以功能方式在lua中进行面向对象编程的方法,而不是标准的元方法。它具有更多的功能(不是双关语),但我担心它可能会降低性能。我的目标是对用lua编写的服务器进行实验,我想使用这个OOP解决方案。无论如何,这里是我的class.lua,它包含用于创建新对象和子类的函数。
local classes = setmetatable({}, {__mode = "k"}) -- Allow the GC to empty this as needed.
function class(f, super)
classes[f] = {super = super
在C语言上可以这样做吗?
class A
{
public:
int x;
int y;
};
class B : public A
{
public:
int w;
int h;
};
void func(A a)
{
//Do something here
}
int main()
{
B b;
func(b);
return 0;
}
在C中有结构?我该如何实施呢?
据我理解,类是具有以下语法的蓝图:
class User {
constructor(name) {
this.name = name;
}
sayHi() {
alert(this.name);
}
}
let user = new User("John");
user.sayHi(); //John
User现在拥有类user的属性,但是函数构造函数也这样做:
function User(name) {
this.name = name;
this.isAdmin = false;
}
let user = new User
我非常喜欢JavaScript的ECMAScript5语法,主要是因为在我看来,正是它使它在遵循相对传统的编程风格和语法的其他面向对象编程语言中独树一帜。
不确定ECMAScript5语法在ECMAScript6中是否仍然受支持,即它是否向后兼容。但是,是否有理由替换语法,特别是在JavaScript中使用基于原型的方法来定义类(更不用说继承,等等)变成更传统的编程语言(如大多数面向对象的编程语言)?
为了举例说明语法变化,按照ECMAScript5,您可以在JavaScript中定义person类:
// ES5 class definition of a Person
function P
我刚进入JavaScript,我对它的面向对象行为感到有点困惑。我只是尝试创建一个带有x、y成员的类,并将其扩展为一个包含x、y、z成员的Point3D类。我试图实现的行为类似于,让我们在C#中这样说:
class Point2D
{
int x, y;
public Point2D(int x, int y) { this.x = x; this.y = y; }
}
class Point3D : Point2D
{
int z;
public Point3D(int x, int y, int z) : base(x, y) { this.z = z; }
Steve Yegge最近发布了一篇关于他所谓的通用设计模式的。在那里,他详细介绍了使用原型作为建模工具,而不是类。我喜欢这种方式,与继承相比,它引入了更少的耦合。但这也可以通过类来获得,通过实现其他类的类来代替继承。有没有其他人有使用原型的成功案例,也许可以帮助解释使用原型比使用类更有利的地方。我猜这归结于静态建模与动态建模,但更多的例子将是非常受欢迎的。