attatch-to-prototype
v1.3.21
Published
Attach functions as non enumerable properties to the prototype of any object.
Downloads
43
Readme
Attach to prototype
Attach functions as non enumerable properties to the prototype of any object.
Please not that Attach to prototype is currently under development and not yet suited for production
Example
Generic
import { constructAttachToPrototype } from "attatch-to-prototype"
const attachToArray = constructAttachToPrototype(Array.prototype/*, options*/)
attachToArray("removeByValue", function(value) {
const index = this.indexOf(value)
if (index === -1) return
this.splice(index, 1)
})
const ar = ["a", "b", "c"]
ar.removeByValue("b")
console.log(ar) // ["a", "c"]
Getter / Setter
Attach
attachToArray("last", {
get() {
return this[this.length-1]
}
set(to) {
return this[this.length-1] = to
}
})
let ar = [1, 2, 3]
ar.last // return 3
ar.last = 0 // return 0
console.log(ar) // [1, 2, 0]
Apply
Just a different syntax to access getter / setter. Use Attach / apply depending on your coding conventions.
import { constructApplyToPrototype } from "attatch-to-prototype"
const attachToArray = constructApplyToPrototype(Array.prototype/*, options*/)
attachToArray("last", {
get() {
return this[this.length-1]
}
set(to) {
return this[this.length-1] = to
}
})
let ar = [1, 2, 3]
ar.last() // return 3
ar.last(0) // return 0
console.log(ar) // [1, 2, 0]
The generic functionality is also available on apply
Contribute
All feedback is appreciated. Create a pull request or write an issue.