构造函数创建对象的"this"
今天看到个练习:
var spencer2 = new Object(); spencer2.age = 22 ; spencer2.country = "United States";
而用 this.age = 22; 则判断没通过。
这次演习是使用构造函数符号分配属性的对象。由于我们最初定义我们的对象作为一个新的对象 new Object(),而我们指定的任何属性,必须通过变量名,因为没有对象的范围。
function Person(age,country) { this.age = age; this.country = country; } var spencer3 = new Person(22,"United States"); console.log(spencer3.country);
看到区别了?
我们可以使用点符号分配(或查询)的任何对象的变量。文本对象的性质,这意味着他们可以读取和操作的任何函数,或控制台命令。
在这个练习中,即私有变量/方法,帮助限制范围。spencer2是一个自定义的对象没有属性,直到我们给他们使用构造函数符号。通过比较的方法,在上面的例子中,spencer3由Person构造函数,设定对象被实例化时,与新的Person()定义的给定的属性。在实例化对象的过程中,这有实例范围内,更特别是在此实例中,spencer3。
如果该对象的任何方法,这将发挥这些方法的运行变量的范围。