在JS定义对象或类,一个是VAR定义的成员,一个是THIS定义的成员变量,区别大吗

JavaScript032

在JS定义对象或类,一个是VAR定义的成员,一个是THIS定义的成员变量,区别大吗,第1张

js中let和var定义变量的区别,主要体现在作用于的不同。

var定义的变量是全局变量或者函数变量。

let定义的变量是块级的变量。

例如:

while(1){

let let1 = 2

var var1 = 2

}

alert(let1) //不可访问

alert(var1) //可以访问

也就是说,let只对它所在的最内侧块内有效,而var的范围至少是一个函数之内。

<video id="myvideo"></video>

<button onclick="testCustomAttribute()">测试</button>

function testCustomAttribute() {

var myobj = document.getElementById("myvideo")

myobj.status = "stop"

console.log($("#myvideo"))

console.log($("#myvideo")[0].status)//此处获得status值

}

Property:属性,所有的HTML元素都由HTMLElement类型表示,HTMLElement类型直接继承自Element并添加了一些属性,添加的这些属性分别对应于每个HTML元素都有下面的这5个标准特性: id,title,lang,dir,className。DOM节点是一个对象,因此,他可以和其他的JavaScript对象一样添加自定义的属性以及方法。property的值可以是任何的数据类型,对大小写敏感,自定义的property不会出现在html代码中,只存在js中。

Attribute:特性,区别于property,attribute只能是字符串,大小写不敏感,出现在innerHTML中,通过类数组attributes可以罗列所有的attribute。

对于有些标准的特性的操作,getAttribute与点号(.)获取的值存在差异性。如href,src,value,style,onclick等事件处理程序。

href:getAttribute获取的是href的实际值,而点号获取的是完整的url,存在浏览器差异。