var变量与此在JavaScript中不同吗

用户名

我对术语varthis在JavaScript构造函数中使用关键字声明变量感到有些困惑例如,在下面的代码中,是var title与变量不同的变量happySongs[0].title它们都用不同的东西初始化。在构造函数中将title初始化为song参数,并且在构造函数之外还将title初始化。但是,它们都返回不同的东西。如果打印出来,happySongs[0].title它将为您带来新的价值。但是,如果您打印出该concat()方法,标题将不会具有“测试”的新值,而将具有旧的值....因此,这里发生了两种不同的情况?这些是单独的变量吗?在函数构造函数中使用var声明变量时,有什么区别this吗?

function Tune(song,artist) {
  var title = song;
  this.concat = function() {
   return title + " " + artist;
 }
}

var happySongs = [];
happySongs[0] = new Tune("Putting on the Ritz", "Ella Fitzgerald");

happySongs[0].title = 'test'
//prints out test
console.log(happySongs[0].title); 

 // prints out correct title and artist
console.log(happySongs[0].concat());
詹姆斯·索普

他们是不同的。

var title = song;

构造函数内的局部变量。

happySongs[0].title = 'test'

在构造的对象创建title 属性Tune改变一个不会对另一个产生影响。concat功能,被构造函数内声明,有权访问本地范围title的外部范围声明的变量。如果您this.title改为引用,则将获得以下属性:

this.concat = function() {
  return this.title + " " + artist;
}

如果将以上内容放入原始代码中,则会导致最后一行:

console.log(happySongs[0].concat());

要输出"test Ella Fitzgerald"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

var变量与此JavaScript中的变量不同吗?

来自分类Dev

IntelliJ Idea中的scala:显示不同的不可变(val)与可变(var)变量吗?

来自分类Dev

PHP变量-相同的var,不同的值可以吗?

来自分类Dev

$ var与isset()不同吗?

来自分类Dev

javascript中的变量可以生成变量吗?

来自分类Dev

JavaScript中变量声明的不同类型

来自分类Dev

从Javascript中的不同变量创建多维数组

来自分类Dev

JavaScript读取JSON以存储在不同的变量中

来自分类Dev

在Javascript中跨不同的范围访问变量

来自分类Dev

在 shell 脚本中引用变量的方式有什么不同吗?

来自分类Dev

在 JavaScript 中的新变量之前不要写“var”

来自分类Dev

Webpack和Javascript变量范围,可以在所有模块中使用var =吗?

来自分类Dev

变量声明JavaScript:在全局空间中使用var-keyword吗?是什么原因?

来自分类Dev

Webpack和Javascript变量范围,可以在所有模块中使用var =吗?

来自分类Dev

简写javascript吗?制作var?

来自分类Dev

在Scala中,为什么不能用不同的数据类型更改var变量的值

来自分类Dev

IntelliJ Idea中的scala:显示不同的不可变(val)与可变(var)变量?

来自分类Dev

桌面环境的$ PATH环境变量与Shell中的变量不同吗?

来自分类Dev

var总是覆盖全局变量吗?

来自分类Dev

在javascript中传递两个不同的变量?

来自分类Dev

将变量设置为 var=var=value 可以吗?

来自分类Dev

Eclipse中的模板变量-var()

来自分类Dev

在Javascript中,可以在声明变量之前使用它吗?

来自分类Dev

Javascript中的变量可以不及时声明吗

来自分类Dev

我可以在JavaScript中对“ if”查询使用变量吗?

来自分类Dev

在Javascript中,可以在声明变量之前使用它吗?

来自分类Dev

在任何C库中已经有与此类似的功能吗?

来自分类Dev

Angular 2获取与此相关的所有变量。在控制器中

来自分类Dev

html中的METHOD属性和PHP中的POST变量可以大小写不同吗?

Related 相关文章

  1. 1

    var变量与此JavaScript中的变量不同吗?

  2. 2

    IntelliJ Idea中的scala:显示不同的不可变(val)与可变(var)变量吗?

  3. 3

    PHP变量-相同的var,不同的值可以吗?

  4. 4

    $ var与isset()不同吗?

  5. 5

    javascript中的变量可以生成变量吗?

  6. 6

    JavaScript中变量声明的不同类型

  7. 7

    从Javascript中的不同变量创建多维数组

  8. 8

    JavaScript读取JSON以存储在不同的变量中

  9. 9

    在Javascript中跨不同的范围访问变量

  10. 10

    在 shell 脚本中引用变量的方式有什么不同吗?

  11. 11

    在 JavaScript 中的新变量之前不要写“var”

  12. 12

    Webpack和Javascript变量范围,可以在所有模块中使用var =吗?

  13. 13

    变量声明JavaScript:在全局空间中使用var-keyword吗?是什么原因?

  14. 14

    Webpack和Javascript变量范围,可以在所有模块中使用var =吗?

  15. 15

    简写javascript吗?制作var?

  16. 16

    在Scala中,为什么不能用不同的数据类型更改var变量的值

  17. 17

    IntelliJ Idea中的scala:显示不同的不可变(val)与可变(var)变量?

  18. 18

    桌面环境的$ PATH环境变量与Shell中的变量不同吗?

  19. 19

    var总是覆盖全局变量吗?

  20. 20

    在javascript中传递两个不同的变量?

  21. 21

    将变量设置为 var=var=value 可以吗?

  22. 22

    Eclipse中的模板变量-var()

  23. 23

    在Javascript中,可以在声明变量之前使用它吗?

  24. 24

    Javascript中的变量可以不及时声明吗

  25. 25

    我可以在JavaScript中对“ if”查询使用变量吗?

  26. 26

    在Javascript中,可以在声明变量之前使用它吗?

  27. 27

    在任何C库中已经有与此类似的功能吗?

  28. 28

    Angular 2获取与此相关的所有变量。在控制器中

  29. 29

    html中的METHOD属性和PHP中的POST变量可以大小写不同吗?

热门标签

归档