admin管理员组文章数量:1241068
I find myself always writing:
console.log(window.location.href);
without even thinking about it. The majority of answers on SO also write it this way. Is there any reason why I can't just write:
location.href
since location
is an object at window level? Are there any cross-browser patibility issues with this?
To Clarify: I know there is document.location
- that is NOT what this question is about. This is about if there is any difference with using only location
vs using window.location
across browsers.
I find myself always writing:
console.log(window.location.href);
without even thinking about it. The majority of answers on SO also write it this way. Is there any reason why I can't just write:
location.href
since location
is an object at window level? Are there any cross-browser patibility issues with this?
To Clarify: I know there is document.location
- that is NOT what this question is about. This is about if there is any difference with using only location
vs using window.location
across browsers.
-
4
Do you even read? It's not a duplicate of
location
vslocation.href
, but aboutx
vswindow.x
– Tibos Commented Oct 17, 2013 at 10:00 - 1 @NikhilAgrawal Nope. You need to read the question again. Or the ment above yours. Both will explain why it is explicitly not about an object vs a property, but the scope of a particular object. – CodingIntrigue Commented Jan 9, 2014 at 15:13
- 1 People are getting way too close-happy. This question isn't even close to being related to the question it's supposedly a duplicate of. – Tmdean Commented Mar 1, 2014 at 23:48
- @Tmdean: it's still a duplicate regardless, for example the first question in the "related" list. stackoverflow./questions/4709037/… – Qantas 94 Heavy Commented Mar 1, 2014 at 23:53
- @Qantas94Heavy The question you linked to is not the first linked one in the related list. None of those in the related list have anything to do with my question. Yours is pletely valid but I searched for a long time and came up with nothing – CodingIntrigue Commented Mar 2, 2014 at 14:09
1 Answer
Reset to default 16There are some differences.
In global scope, there is absolutely no difference between them, but in other cases you might get in trouble:
function () {
var location = { 'href' : '123' } ;
console.log(window.location.href) // actual url
console.log(location.href) // '123'
}
This stems from the fact that if you write location without prefixing it with window, it will go up through every scope to find a variable named location. Eventually it will find it in window, unless another scope declared one as well. Obviously the reverse is true as well:
function () {
var window = { 'location' : { 'href': '123' } };
console.log(window.location.href) // '123'
console.log(location.href) // actual url
}
I for one prefer to prefix the global variables with window because that way i immediately know they are global and also because when i find a global variable that is not prefixed with window, i know it is a typo missing a var, but that is purely personal preference.
本文标签:
版权声明:本文标题:javascript - Is there any difference with using only location vs using window.location across browsers - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1740048366a2222026.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论