Javascript 将变量从函数访问到另一个函数

Javascript 将变量从函数访问到另一个函数,javascript,node.js,typescript,Javascript,Node.js,Typescript,我有两个相互独立的函数,但我想让这些函数共享变量 在这个例子中,我有一个非常基本的函数,它可以打印出变量,我称之为nameouther function nameOutside() { console.log(name); } 在这个例子中,我有nameinide函数,它有一个名为name的变量,在函数的底部有另一个nameouther函数,我希望这个函数打印出名称而不传入函数(因为它在nameinide函数内部) 问题是nameOutside函数无权访问name变量 如何在不传入函数

我有两个相互独立的函数,但我想让这些函数共享变量

在这个例子中,我有一个非常基本的函数,它可以打印出变量,我称之为
nameouther

function nameOutside() {
    console.log(name);
}
在这个例子中,我有
nameinide
函数,它有一个名为
name
的变量,在函数的底部有另一个
nameouther
函数,我希望这个函数打印出名称而不传入函数(因为它在
nameinide
函数内部)

问题是
nameOutside
函数无权访问
name
变量

如何在不传入函数的情况下访问
nameinded
函数

如果要访问
name
变量,必须定义
nameouthern()
inner
nameinded()

函数名inside(){
让name=“我的名字”;
函数名外部(){
console.log(名称);
}
名称外部();
}

您可以将
名称
变量设置为全局变量

let name;
function nameInside() {
  name = "my name"; // global variable
  nameOutside();
}

function nameOutside() {
  console.log(name);
}

nameInside();
供您参考全局变量(未声明的变量在JS中是全局的)

窗口对象中获取变量

window.name = "my name";

function nameInside() {
  nameOutside();
}

function nameOutside() {
  console.log(window.name);
  console.log(name); // both with give same output
}

nameInside();

这样做不是一个好的做法。将名称作为变量传递给另一个方法并使用so。

在面向对象编程中,对象的不同方法(函数)可以使用“this”关键字共享公共变量。在本例中,我声明了一个名为“Context”的类,它有两个方法“nameOutside”和“nameInside”。然后我从类中实例化一个对象,将引用存储在“context”变量中。最后,我调用该对象的nameInside()方法

类上下文{
名称外部(){
console.log(this.name);
}
nameinded(){
this.name=“我的名字”;
这个。nameouther();
}
}
让上下文=新上下文();

context.nameinide()
对不起,但是我知道您可以使用
var
const
let
创建哪种类型的变量没有var、const或let的变量是全局变量,或者等等,我将在代码本身上添加变量声明,以便变量在窗口对象上可用,或者仅在函数scopewindow对象上可用,您可以从代码文件中的任何位置访问它。虽然定义全局变量不是最佳实践,并且只有在添加变量声明之前essentialFirst时才应该这样做
let name工作正常,但在窗口对象中是否可以访问它?
window.name = "my name";

function nameInside() {
  nameOutside();
}

function nameOutside() {
  console.log(window.name);
  console.log(name); // both with give same output
}

nameInside();