但是在调用属性时,如果属性名本身是数值,则不能以 obj.2 这样的形式进行调用,只能用 obj["2"] 这种形式调用。为什么呢,请看下面的例子:
首先,假定 obj.2 这样的调用方式是合法的,那么下面的语句也没问题:
alert(obj.2)
但是,如果改成下面这样的方式呢?
with(obj){
alert(2)
}
这时候你究竟让系统把2作为obj的属性呢,还是纯粹的数字2?
所以,为了防止混淆,js中规定所有的名称(比如变量名、对象名、函数名、属性名等等)都要以字母(或者下划线)开头,不能以数字或其他符号开头(当然纯数字就更不可以了)。其实几乎所有的编程语言都有这样的规定的。
至于自定义对象中的数字形式的键,其实并不算是属性名,我们可以把它理解为类似于数组(数组也是对象)中的序号或者索引号。
再补充说一句:尽可能避免用数字来作为对象的键名!
1.全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。
全局对象不是任何对象的属性,所以它没有名称。
2.内部对象是编写自定义代码所用语言的基础, 该代码基于想象实现自定义功能。
JavaScript 有许多 将其定义为语言的内部对象。本文介绍了一些 最常用的对象,
并简要介绍了它们有哪些功能以及如何使用这些功能。
3.预定义对象这个像是select,Array等这个都是预定义对象。
function Student(id,name) {this.id = id
this.name =name
this.total =function (num1,num2) {
return num1+num2
}
}
var st = new Student('id1','小王')
console.log(st.id,st.name,st.total(1,2))