Javascript变量声明:这与var

时间:2016-06-01 11:20:35

标签: javascript variables scope this

之间有区别吗?
function test(){
    var myVar;
}

function test(){
    this.myVar;
}

3 个答案:

答案 0 :(得分:4)

this的值取决于函数的调用方式,而var VARIABLE_NAME将在函数的local-scope中创建变量。

在第二个示例中,您正在创建Object-Constructor,您可以使用test

创建function test(name) { this.name = name; } console.log(new test('Abc')); console.log(new test('Xyz'));对象的多个实例

<div style="max-width: 500px;">
    <div style="min-width: 240px; display: inline-block; font-weight: bold;" class="text-right">Delivery date:</div>
    <div style="min-width: 240px; display: inline-block;" class="text-left">Tuesday 24 May</div>
</div>

答案 1 :(得分:1)

javascript中有两个范围,local or function scopeglobal scope。 在您的情况下this is globalvar is local scope/function scope

如果你在IIFE中使用this(立即调用函数表达式)和'use strict'它不是全局的

答案 2 :(得分:0)

最大的区别是你的第一个代码就像一个私有属性(本地范围),第二个代码就像一个公共属性(全局范围)。

示例:

&#13;
&#13;
var test = function(){
  this.myVar = "test var";
}

var test2 = function() {
  var myVar = "test2 var"; 
}

alert((new test()).myVar);
alert((new test2()).myVar);
&#13;
&#13;
&#13;