prototype
۱۴۰۱ شهریور ۵, شنبه ساعت ۱۳:۰۳خب یک تغییر اساسی در کلاس ها انجام دادم. از این به بعد متد ها به پراپرتی prototype به آبجکت اصلی کلاس اضافه میشن. و خواندن اون هم از prototype انجام میشه. مزیت اینکار استفاده کمتر از رم میشه که با ایجاد هر آبجکت جدید از کلاس ( new کردن کلاس ) دیگه کپی انجام نمیشه و رفرنس میشه به کلاس اصلی و با اضافه شدن متد به کلاس اصلی به تمامی آبجکت هایی که حتی از قبل هم ایجاد شدن اون متد اضافه میشه.
مثال :
class Test {
a() {
print("in a\n")
}
}
main() {
let y = {}
y.o = func() {
print("y o \n")
}
y.o();
print( String )
print( Array )
print( Object )
String.prototype.test = func() {
return 2;
}
String.prototype.test1 = func() {
return "test1";
}
let a = "Hello World"
print( a.substr(1,4)+"\n" )
print( a.length() )
print("\n")
print( a.test() )
print("\n")
print( a.test1() )
print("\n")
let g = new Test
Test.prototype.b = func() {
print("in b\n");
}
print( g );
g.a();
g.b();
}