var student1 ={
name:'tom',
age:18,
sayNanme:function () {
console.log('my name is'+this.name)
}
}
简单声明一个对象(object)为student1,你可以通过student1.name或者student1[name]的形式访问它的name或者age属性。
sayName是它的一个方法,本质就是一个函数,可以通过student1.sayName()的形式调用。这会在浏览器的console(控制台)里面,以log的形式(也有warn等其他用法)输出一行字符串,内容为“my name is tom”。
this.name直接写成name不行吗?
实践证明是不行的,二者的区别在于this.name明确了:应在object内查找名为name变量。如果直接写成name,解释器会认为这是一个全局变量,会在object外查找,由于在全局范围没有声明name,自然也就无法找到。如果在全局范围内声明了name=‘van’,代码还是会正常输出的。
this是啥?如果某个对象使用this.的形式访问自己的属性或方法,this就是这个对象本身。