我有以下代码:
if (images[i].parentNode) {
var parent = images[i].parentNode;
}
这样做时,我访问了 parentNode 两次。我想知道这样做是否可能/正确:
if (var parent = images[i].parentNode) {
// here I can access parent.
}
我有以下代码:
if (images[i].parentNode) {
var parent = images[i].parentNode;
}
这样做时,我访问了 parentNode 两次。我想知道这样做是否可能/正确:
if (var parent = images[i].parentNode) {
// here I can access parent.
}
您可以为变量创建本地范围:
(function(){
var parent = images[i].parentNode;
// here I can access parent.
console.log(parent); //logs parent variable
})();
console.log(parent); //ERROR parent not defined
简短的回答:没有。
长答案:你试过吗?:) 你所拥有的不是合法的 JavaScript,解释器不会接受它,因为var
那里不接受关键字。
如果您不想访问parentNode
两次,只需将其分配给一个变量:
var parent = images[i].parentNode;
if(parent) {
...
}
在哪个块中定义并不重要,parent
因为 JavaScript 没有块级作用域。
但是,您可以这样做:
if(parent = images[i].parentNode) {
...
}
但问题是parent
它将属于全局命名空间(如果您之前没有定义它)。所以你可以这样做:
var parent;
if(parent = images[i].parentNode) {
...
}
但是正如你所看到的,它与我之前建议的并没有太大的不同,所以你并没有真正用它来购买你自己,而且它也可能给阅读你的代码的任何人(甚至是你!)造成混淆,因为它是一个不熟悉的结构。
你总是可以做这样的事情:
var parent = images[i].parentNode;
if (parent) {
// Do Stuff
}