-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Description
According to the book (https://arcturo.github.io/library/coffeescript/03_classes.html) instance properties can be created in the following way:
class Animal
price: 5 # instance property according to the book
sell: (customer) ->
animal = new Animal
animal.sell(new Customer)But when I checked generated JavaScript code it looks like price property was added to the prototype 😕...
Well, if you try to use it I guess in that case it will magically work because the number type in JavaScript is immutable, but let me just show you an example with mutable field:
class Store
products: [] # instance property?
addProduct: (name) ->
@products.push(name)
foodStore = new Store
foodStore.addProduct 'milk'
motoStore = new Store
motoStore.addProduct 'tyre'
console.log motoStore.products # ['milk', 'tyre'], boomSo obviously products property was added to the prototype and it's shared by both instances.
Metadata
Metadata
Assignees
Labels
No labels