اگر قرار باشه روزی زبان برنامه نویسی جدیدی برای طراحی وب سرویس ها انتخاب کنم بی شک اون جاوا اسکریپت خواهد بود، شیوه عمل جاوااسکریپت در بسیاری موارد طوری است که آدم ترقیب به استفاده هر چه بیشتر ازش میشه. برای مثال من در برنامه خود تعدادی رشته دارم که می خواهم برای هر کدام به هر کدام از رشته های رنگی یکتا نسبت دهم، راه ساده ای که در پیش گرفتم هش کردن رشته ها و ایجاد یک عدد صحیح و سپس تبدیل عدد صحیح به یک کد هگز برای استفاده است. ولی جذابیت کار برای من اینجاست که برای انجام این کار بجای تعریف تابعی خارجی و فراخوانی آن با رشته مورد نظر، این تابع را درون پروتوتایپ کلاس `String` تعریف کردم تا در موارد لازم براحتی این تابع را از درون یک رشته فراخوانی کنم.

``` String.prototype.hash = function() {// java String#hashCode var str = this.toString(); var hash = 98765432101; for (var i = 0; i < str.length; i++) { hash = str.charCodeAt(i) + ((hash << 5) - hash); } return hash; } String.prototype.toColor = function() { var i = this.hash(); return '#'+('00'+((i>>16)&0xFF).toString(16)).slice(-2) + ('00'+((i>>8)&0xFF).toString(16)).slice(-2) + ('00'+(i&0xFF).toString(16)).slice(-2); } ```

همانطور که در بالا گفته شد برای فراخوانی کافی است این تابع را از درون یک رشته صدا بزنیم

``` var str = "text"; str.toColor(); // other way "The String".toColor(); ```