Sadece javascript edindim ve nesneye yönelik davranışı ile şaşırdım. Sadece x
, y
üyeleri ile bir sınıf Point2D
oluşturmak ve x
, y
, z
üyeleri ile bir Point3D
sınıfla uzatmaya çalışıyordum.Javascript'te "superclass" yapıcıyı çağır
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; }
}
Ben bir sürü şey okudum ama gerçekten aradığım şeyi bulmak için görünmüyor: Ne elde etmek çalışıyorum davranış gibi en C# bunu diyelim bir şeydir. Ben bugüne kadar kadar geldim ne: Açıkçası yanlış
function Point2D(x, y) { this.x = x; this.y = y; }
Point2D.prototype.constructor = Point2D;
function Point3D(x, y, z) { Point2D.prototype.constructor.call(this); this.z = z; }
Point3D.prototype = new A(); // see latter explanation
Point3D.prototype.constructor = B;
var p = new Point3D(10, 20, 30);
.
Şimdi, ben Point3D.prototype = new A(x, y)
gibi bir şey yapması gerektiğini biliyorum ama sabitx
, y
koordinatları ve değişken z
ile bir prototip oluşturmak istemiyoruz. Çok basit olmalı, ama bunu anlamıyorum, süper sınıf kurucusunu aramak gibi görünmüyor ya da düzgün davranmasını sağlayamıyorum.
Çok teşekkür ederim, deliriyordum ve o kadar kolaydı! Kesinlikle bu kitapların en az birine bir okuma yapacağım. – Cancer