এখানে এমন একটি সমাধান যা এখানে অন্যান্য বেশ কয়েকটি উত্তরের সাথে https://stackoverflow.com/a/7579956/1484513 এ আঁকতে পারে । এটি একটি প্রাইভেট ক্লাস (স্থিতিশীল) অ্যারেতে প্রাইভেট ইনস্ট্যান্স (অ স্থিতিশীল) ভেরিয়েবলগুলি সঞ্চয় করে এবং সেই অ্যারের কোন উপাদানটিতে প্রতিটি উদাহরণের অন্তর্ভুক্ত ডেটা থাকে তা জানতে আইটেম আইডি ব্যবহার করে।
(->
i = 1
Object.defineProperty Object.prototype, "__id", { writable:true }
Object.defineProperty Object.prototype, "_id", { get: -> @__id ?= i++ }
)()
class MyClass
__ = []
_a = null
_b = null
c: null
_getA = -> a
getB: -> _b
getD: -> __[@._id].d
constructor: (a,b,@c,d) ->
_a = a
_b = b
__[@._id] = {d:d}
test1 = new MyClass 's', 't', 'u', 'v'
console.log 'test1', test1.getB(), test1.c, test1.getD()
test2 = new MyClass 'W', 'X', 'Y', 'Z'
console.log 'test2', test2.getB(), test2.c, test2.getD()
console.log 'test1', test1.getB(), test1.c, test1.getD()
console.log test1.a
console.log test1._a
class AnotherClass extends MyClass
test1 = new AnotherClass 's', 't', 'u', 'v'
console.log 'test1', test1.getB(), test1.c, test1.getD()
test2 = new AnotherClass 'W', 'X', 'Y', 'Z'
console.log 'test2', test2.getB(), test2.c, test2.getD()
console.log 'test1', test1.getB(), test1.c, test1.getD()
console.log test1.a
console.log test1._a
console.log test1.getA()