之间有区别吗?
function test(){
var myVar;
}
和
function test(){
this.myVar;
}
答案 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 scope
和global scope
。
在您的情况下this is global
和var is local scope/function scope
。
如果你在IIFE中使用this
(立即调用函数表达式)和'use strict'它不是全局的
答案 2 :(得分:0)
最大的区别是你的第一个代码就像一个私有属性(本地范围),第二个代码就像一个公共属性(全局范围)。
var test = function(){
this.myVar = "test var";
}
var test2 = function() {
var myVar = "test2 var";
}
alert((new test()).myVar);
alert((new test2()).myVar);
&#13;