I've looked a fair bit, so pardon me if this has already been answered.
I'm also curious as to what the actual term is called; Is it "Ambiguous" for the type of arguments I am handling?
Anyways, the problem is that I want to be able to call a function like this:
prompt(_.define(variable, "DEFAULT VALUE"));
Basically, so that variables can have default values.
However, every time I try to do this, I get this error:
Timestamp: 6/11/2012 1:27:38 PM
Error: ReferenceError: thisvarisnotset is not defined
Source File: http://localhost/js/framework.js?theme=login
Line: 12
Here is the source code:
function _() {
return this;
};
(function(__) {
__.defined = function(vrb, def) {
return typeof vrb === "undefined" ? ((typeof def === "undefined") ? null : def) : vrb;
};
})(_());
prompt(_.defined(thisvarisnotset, "This should work?"), "Can you see this input?");
Not sure why it's doing this? I've called undefined variables as arguments in functions before and it worked just fine.
A completely undeclared variable can't be passed in JS; you can only pass declared variables or undeclared properties of other variables.
In other words:
Why don't you just initialize the variable with a default value?
Or, just initialise the variable before calling
defined
.Or, even better.