构造函数中的JAVASCRIPT函数
这两者有什么区别构造函数中的JAVASCRIPT函数,javascript,function,methods,constructor,Javascript,Function,Methods,Constructor,这两者有什么区别 function Set(){ this.a =1; this._v2s=function(){}; this._v2s.next = 1000; } 及 及 有点困惑,因为它们彼此的行为不同在第一个示例中,您基本上是在用函数构造一个类,其中值this.A和this.v2将应用于新对象 在第二个例子中 _v2s =function(){}; _v2s.next = 1000; 是一个全局变量。新集合将使用属性next设置全局变量\u v2s 在第三个
function Set(){
this.a =1;
this._v2s=function(){};
this._v2s.next = 1000;
}
及
及
有点困惑,因为它们彼此的行为不同在第一个示例中,您基本上是在用函数构造一个类,其中值this.A和this.v2将应用于新对象 在第二个例子中
_v2s =function(){};
_v2s.next = 1000;
是一个全局变量。新集合
将使用属性next
设置全局变量\u v2s
在第三个示例中,您将\u v2
属性设置到类本身上。这意味着当您构建集合时,\u v2
将不会与集合一起创建。它只能通过调用Set来访问。\u v2
希望这不会让人困惑 为了解释这三个示例之间的差异,假设您使用new关键字调用Set函数,使其像构造函数一样工作:
var mySet = new Set();
1。第一个示例:
function Set(){
this.a =1;
this._v2s=function(){};
this._v2s.next = 1000;
}
var mySet = new Set();
function Set(){
this.a =1;
_v2s =function(){};
_v2s.next = 1000;
}
var mySet = new Set();
function Set(){
this.a =1;
}
Set._v2s = function(){};
Set._v2s.next =1000;
var mySet = new Set();
此代码定义的内容:
Set
:对象(原型函数的对象。原型
)
mySet
:对象(属于prototypeSet.prototype
),具有两个自己的属性:
a
:数字(值=1)
\u v2s
:一个对象(原型函数的),它拥有一个名为next的属性,该属性是一个数字(值=1000)
2。第二个示例:
function Set(){
this.a =1;
this._v2s=function(){};
this._v2s.next = 1000;
}
var mySet = new Set();
function Set(){
this.a =1;
_v2s =function(){};
_v2s.next = 1000;
}
var mySet = new Set();
function Set(){
this.a =1;
}
Set._v2s = function(){};
Set._v2s.next =1000;
var mySet = new Set();
此代码定义的内容:
Set
:对象(原型函数的对象。原型
)
mySet
:对象(原型Set.prototype
),具有1个自己的属性:
a
:数字(值=1)
- _v2s:与以前相同,只是它现在是一个全局变量,不再是
mySet
3。第三个示例:
function Set(){
this.a =1;
this._v2s=function(){};
this._v2s.next = 1000;
}
var mySet = new Set();
function Set(){
this.a =1;
_v2s =function(){};
_v2s.next = 1000;
}
var mySet = new Set();
function Set(){
this.a =1;
}
Set._v2s = function(){};
Set._v2s.next =1000;
var mySet = new Set();
此代码定义的内容:
Set
:对象(prototype函数的prototype
),具有1个自己的属性:
\u v2s
:与以前相同,只是现在它是集合
对象的自有属性
mySet
:对象(原型Set.prototype
),具有1个自己的属性:
a
:数字(值=1)
对于每一个问题,您的期望是什么,结果是什么?如果您通读了基础知识,您可能会回答自己的问题。首先,\u v2s
是类实例对象,其次是最后一种情况下的全局变量和属性函数。它不会引发错误:如果没有var
,它是一个全局变量。确实如此。我必须修改我的回答。