PEJI.IR

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();
}