I would like to get the name of the method inside the method in a class and throw an error when one argument is passed to the method. For example, if the name of the instance is instance_of_cookie
and the name of the method is (for simplicity) the_method
, then passing one argument to that method should throw an error like "instance_of_cookie.the_method" expected two arguments
or simply "the_method" expected two arguments
.
I can get the name of the function inside the function using arguments.calle.name
. But that doesn't seem to work inside class methods and throws the following error:
VM10:4 Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
at Cookie.the_method (<anonymous>:4:28)
at eval (eval at the_method (:4:28), <anonymous>:1:32)
at Cookie.the_method (<anonymous>:4:28)
at <anonymous>:13:32
I came across a post which mentioned this.constructor.name
but that gives me the name of the class.
class Cookie {
the_method(x, y) {
if (y == undefined) {
return `'${this.constructor.name}' expects two arguments; one was given`;
} else {
return "Everything's OK"
}
}
}
let instance_of_cookie = new Cookie();
console.log(instance_of_cookie.the_method(8))
Is there any way I can get the name of the method inside the method in a class?
(Note: I can hard-code the name of the method, but for some reasons, I don't want to do that.)
Via Active questions tagged javascript - Stack Overflow https://ift.tt/rvyiqQR
Comments
Post a Comment