Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在构造函数中声明变量有什么用_Javascript - Fatal编程技术网

Javascript 在构造函数中声明变量有什么用

Javascript 在构造函数中声明变量有什么用,javascript,Javascript,我在学习Javascript中基于类的结构 至少可以说,我创建了一个简单的类 class something { constructor() { var name = "somexyz" this.age = 13 } somefunc () { console.log(this.name)//Undefined console.log(name) //blank space console.log(this.age) //13 } }

我在学习Javascript中基于类的结构

至少可以说,我创建了一个简单的类

class something { 
  constructor() {
  var name = "somexyz"
  this.age = 13 
  } 

  somefunc () {
    console.log(this.name)//Undefined
    console.log(name) //blank space
    console.log(this.age) //13
  }
}
然后使用

let foo = new something()
foo.somefunc()
上面代码的注释中提到了哪个consoles.log 1.未定义 2.空位 3.十三,

或者取一个构造函数

function something () {
  this.age =  11
  let age = 13 
  this.getAge = function () {
   return this.age
  }
}
这里,

let somethingNew = new something() 
将以11岁的年龄返回


现在,我的问题是,在构造函数中使用变量的目的到底是什么

重点应该放在简单类上——局部变量的概念似乎毫无意义,但实际上非常有用

简单示例-重复使用变量时

class transport
{
    constructor ()
    {
      const someString = "IUseThisAgainAndAgain";
      this.type = 'someType';
      this.name = 'someName';
      this.serial = someString + "SOMETHING";
      this.model = someString + "something thing";
      this.example = someString + "another string concat";
    }
}

正如你所看到的,我们经常使用一些字符串。你会看到一个巨大的构造函数方法,它为一个重复的实例提供了一个变量,这将允许更好的代码可读性,并允许你在一个地方轻松地修改实例。

重点应该放在简单的类上-局部变量的概念看起来毫无意义,但实际上非常有用

简单示例-重复使用变量时

class transport
{
    constructor ()
    {
      const someString = "IUseThisAgainAndAgain";
      this.type = 'someType';
      this.name = 'someName';
      this.serial = someString + "SOMETHING";
      this.model = someString + "something thing";
      this.example = someString + "another string concat";
    }
}
正如你所看到的,我们经常使用一些字符串。您将看到一个巨大的构造函数方法,它为一个重复的实例提供了一个变量,这将允许更好的代码可读性,并允许您在一个地方轻松地修改实例。

您可以使用变量设置默认值,也可以用于检查或数学计算

例如:

类{ 构造库{ var默认值_年龄=13; ifage>13{ 这个。年龄=年龄; }否则{ this.age=默认年龄; } } 我的年龄{ console.logI am+此。年龄+岁。 } } var newobj=新事物15; newobj.myage; var newobj2=新事物8; newobj2.myage 您可以使用变量设置默认值,也可以用于检查或数学计算

例如:

类{ 构造库{ var默认值_年龄=13; ifage>13{ 这个。年龄=年龄; }否则{ this.age=默认年龄; } } 我的年龄{ console.logI am+此。年龄+岁。 } } var newobj=新事物15; newobj.myage; var newobj2=新事物8; newobj2.myage; 构造函数中的变量仅在构造函数的作用域中定义 在本例中,是全局范围中存在的字符串。在方法执行的当前作用域中找不到名称,它将被查找并上移到window.name。尝试用其他名称更改名称,例如:name2,您将得到一个错误。 有关somexyz的日志记录,请参见下面的代码段 当然,构造函数中的局部变量对于构造函数本身的逻辑应该是有用的 分类{ 建造师{ var name=somexyz var name2=somexyz 这个年龄=13岁 } somefunc{ console.logthis.name//未定义 console.logname//window.name console.logwindow.name//window.name console.logthis.\uuuuu proto\uuuuu.constructor.name//something console.logthis.age//13 } } 让foo=新事物 foo.somefunc 构造函数中的变量仅在构造函数的作用域中定义 在本例中,是全局范围中存在的字符串。在方法执行的当前作用域中找不到名称,它将被查找并上移到window.name。尝试用其他名称更改名称,例如:name2,您将得到一个错误。 有关somexyz的日志记录,请参见下面的代码段 当然,构造函数中的局部变量对于构造函数本身的逻辑应该是有用的 分类{ 建造师{ var name=somexyz var name2=somexyz 这个年龄=13岁 } somefunc{ console.logthis.name//未定义 console.logname//window.name console.logwindow.name//window.name console.logthis.\uuuuu proto\uuuuu.constructor.name//something console.logthis.age//13 } } 让foo=新事物
foo.somefunc仅用于局部计算。这将创建实例数据--作为所创建对象实例一部分的数据。让、var和const创建不随实例存储其数据的常规变量,因此您无法从实例变量访问其信息。它们是作为创建私有数据的方式存在的。仅用于本地计算。这将创建实例数据--是您创建的对象实例的一部分的数据。让、var和const创建不随实例存储其数据的常规变量,因此您无法从实例变量访问其信息。它们作为创建私有数据的方式存在。