JS中全局变量和window自定义属性的区别

JavaScript013

JS中全局变量和window自定义属性的区别,第1张

在运行的时候,所有在全局作用域定义的变量,函数都会变成window对象中属性和方法,所以通过var定义的属性,可以通过window对象来访问,ex:var name = 'xxx'console.log(window.name)//运行结果:xxx 主要区别有     1. 全局变量不能通过delete删除,window的属性可以直接删除     2. 直接访问未定义的变量时会报错,但是通过window访问就不会报错,只要是通过window访问,相对于属性访问,结果返回undefine *通过var来定义的会有作用域,当在函数内部定义的变量,在函数外就会失效。js在定义变量的时候,默认是var,但一个变量如果没有定义就直接使用,那么默认认为它是个全局变量,这个对于在函数内也适用。

不可以。

可以这样分析:

style.width不是一个属性,更不是obj对象的一个属性,你若这样访问obj["style.width"],这是不存在的;

style.width把它当作一个引用(指针)来看的话,不指向任何内容。你把他赋值给一个变量(比如var w = style.width)这是行不通的。

我想你需要的可能是这样:

obj['style']['width']

你从这个角度考虑试试。

1.这种方法的属性(setAttrName)可以是一个变量。

var obj = {}

obj[setAttrName] = 'Tom'

2.这样就可以动态的给js对象添加变量属性。

var obj = {

attr: {

}

}

var egData = ['oneAttr', 'twoAttr', 'threeAttr']

for (var i = 0 i < egData.length i++) {

obj.attr[egData[i]] = false

}

资料拓展:

创建 JavaScript 对象

通过 JavaScript,您能够定义并创建自己的对象。

创建新对象有两种不同的方法:

1.定义并创建对象的实例

2.使用函数来定义对象,然后创建新的对象实例