Why does the following not work? According to everything I've read it looks like it should work?
a = {
test: "hello",
test2: this.test
};
I do a console.log(a)
and I get test2: undefined
.
Why does the following not work? According to everything I've read it looks like it should work?
a = {
test: "hello",
test2: this.test
};
I do a console.log(a)
and I get test2: undefined
.
In this example, this
refers to the value of this
relative to the statement a = ...
, which is probably window
(if you're running this in the browser, and if this is the entirety of the code).
If you wrote a constructor:
var A = function() {
this.test = "hello";
this.test2 = this.test;
};
var a = new A();
... the value of a.test2
would be what you'd expect.
Because your this
refers to the window and there is no global variable/object named test, so window.test
is undefined