JavaScript 学习(1)
JavaScript的两个特征:
?
不需要声明就可以使用变量有隐含的全局概念,即不声明的任何变量都会成为全局对象(this)的属性var customer = new Object();customer.firstName="yongfei";customer.lastName="yang";?? 等价于:? ?var customer={firstName:'yongfei',lastName:'yang'}
?
对象字面量(object literal):一个名值对列表,每个名值对之间用逗号分隔,并用一个大括号括起。各名值对表示对象的一个属性,名和值这两部分之间用一个冒号分隔。
数组字面量(array literal):这是一个用逗号分隔的值列表
函数字面量:前面是一个function关键字,后面是一个函数名(可选)和参数表。然后是函数体,包围在大括号中。
?
?
? ? ?prototype使用技巧
JavaScript为每一个类型(Type)都提供了一个prototype属性,将这个属性指向一个对象,这个对象就成为了这个类型的“原型”,这意味着由这个类型所创建的所有对象都具有这个原型的特性。另外,JavaScript的对象是动态的,原型也不例外,给prototype增加或者减少属性,将改变这个类型的原型,这种改变将直接作用到由这个原型创建的所有对象上.如果给某个对象的类型的原型添加了某个名为a的属性,而这个对象本身又有一个名为a的同名属性,则在访问这个对象的属性a时,对象本身的属性“覆盖”了原型属性,但是原型属性并没有消失,当你用delete运算符将对象本身的属性a删除时,对象的原型属性就恢复了可见性。利用这个特性,可以为对象的属性设定默认值将一个对象设置为一个类型的原型,相当于通过实例化这个类型,为对象建立只读副本,在任何时候对副本进行改变,都不会影响到原始对象,而对原始对象进行改变,则会影响到副本,除非被改变的属性已经被副本自己的同名属性覆盖。用delete操作将对象自己的同名属性删除,则可以恢复原型属性的可见性。?
?
?