Skip to content

Instantly share code, notes, and snippets.

@shnjp
Created May 14, 2017 08:37
Show Gist options
  • Save shnjp/8806f171ab8e96684221b2bd9a21beb8 to your computer and use it in GitHub Desktop.
Save shnjp/8806f171ab8e96684221b2bd9a21beb8 to your computer and use it in GitHub Desktop.
WeakSetの使いみち...
class RefCounter {
constructor() {
this.counter = 0
this.decrementers = new WeakSet()
}
increment() {
this.counter += 1
const decrementer = () => {
if(this.decrementers.has(decrementer)) {
this.decrementers.delete(decrementer)
this.counter -= 1
return true
}
return false
}
this.decrementers.add(decrementer)
return decrementer
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment