多个局部变量声明与一个全局变量声明

many local variables declaration vs one global?

本文关键字:声明 一个 全局变量 局部变量      更新时间:2023-09-26

我只是一个新的javascript biginner,如果我需要多次(比方说20次)重用同一个变量,从性能的角度来看,我应该一次将其声明为全局,还是在本地范围的每个函数上下文中多次声明(正如我所听说的)?

什么情况下贝娄更好?

案例A:

var myvar = document.getElementById('case'); //global
function one(){
myvar.innerHTML = 'newb';
...
}
function two(){
myvar.value = '3';
...
}

案例B:

function one(){
var myvar = document.getElementById('case'); //local
myvar.innerHTML = 'newb';
...
}
function two(){
var myvar = document.getElementById('case'); //lobal 
myvar.value = '3';
...
}

案例C:

var myvar = document.getElementById('case'); //global
function one(){
var myvar = document.getElementById('case'); //local
myvar.innerHTML = 'newb';
...
}
function two(){
var myvar = document.getElementById('case'); //lobal 
myvar.value = '3';
...
}

thx表示建议,
gui

将案例A包裹在闭包中

(function() {
  var myvar = document.getElementById('case');
  function one(){
    myvar.innerHTML = 'newb';
    ...
  }
  function two(){
    myvar.value = '3';
    ...
  }
})()

现在全局范围内没有任何内容,但您只能访问DOM一次。

情况A必须是最好的,或者如果你喜欢面向对象编程,你可以做:

function MyClass() {
    this.element = document.getElementById('case');
    this.one = function() {
        this.element.innerHTML = 'newb';
    }
    this.two = function() {
        this.element.value = '3';
    }
    return this;
}
var myCls = new MyClass();
myCls.one();
myCls.two();