一、JavaScript对象反射
1.测试myObject对象是否具有someProperty属性:typeof(myObject.someProperty != "undefined")
2.测试对象某个属性的类型,用instanceof操作符。eg. if( myObject instanceof Array/Object).
用JSON方式创建的任何对象为Object类型或者Array类型。JavaScript内建类型支持继承,如function、Array都继承自Object类型。
二、方法&函数
java函数与定义它的类绑定在一起,且不能脱离类而存在。JavaScript函数可以在任意位置,第一个声明该函数的对象拥有该函数的所有权。
函数调用:1)var result = MyObject.doSomething(x,y,z);
2)var result = MyObject.doSomething.call(MyOtherObject,x,y,z); 第一个参数是函数在调用期间的对象环境
或 var result =MyObject['doSomething'].call(MyOtherObjct,x,y,z);
函数的参数列表不是固定长度,忽略多余的参数,补充缺少的参数为undefined。
三、事件处理&函数环境
事件处理的声明可以作为html标记的一部分,或通过编程以代码的形式实现。
从MVC角度看,若定义一个JavaScript对象,包括若干属性,为某些属性添加事件处理函数,可将对象视为model,事件处理 函数为controller,对应的DOM对象为view。单击某元素,触发事件处理函数,以Event对象为参数自动传给事件处理函数,以该元素作为一个DOM对象成为函数执行的上下文。
跨Browser的JavaScript实用程序库(如prototype.js库)