这个定义的变量算是什么类型的?
var Node = {
ELEMENT_NODE:1,
ATTRIBUTE_NODE:2,
TEXT_NODE:3
}
我用typeof显示的是object,这个是数组吗?
JS的数组只能通过new Array()定义吗
------解决方案--------------------ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE 是Node的三个属性
alert(Node.ATTRIBUTE_NODE);
------解决方案--------------------对象字面量
------解决方案--------------------Node 是对象,不是数组
测试
alert(Node instanceof Object) //true
alert(Node instanceof Array) //false
ELEMENT_NODE,ATTRIBUTE_NODE,TEXT_NODE是它的三个属性
定义数组的方式还可以:
a = [1,2,3,4,6, 'dsa ',new Date()];
------解决方案--------------------是对象不需要实例化吗?直接引用alert(Node.ATTRIBUTE_NODE);就可以?
-------------------------
Node已经是一个实例了
function Node(){
this.ELEMENT_NODE=1;
this.ATTRIBUTE_NODE=2;
this.TEXT_NODE=3;
}
这个对象需要实例化
而var Node = {
ELEMENT_NODE:1,
ATTRIBUTE_NODE:2,
TEXT_NODE:3
}相当于var node=new Node();
------解决方案--------------------是javascript定义对象的一种方法等价于
function node(ELEMENT_NODE,ATTRIBUTE_NODE,TEXT_NODE){
this.ELEMENT_NODE=ELEMENT_NODE;
this.ATTRIBUTE_NODE=ATTRIBUTE_NODE;
this.TEXT_NODE=TEXT_NODE;
}
var Node = new node(1,2,3);
------解决方案--------------------JSON是一种JS的基础数据结构
是一种比XML更快捷更高效的数据模型,GOOGLE MAP就是用它做的数据交换
具体看这里
http://www.javaeye.com/topic/71343
http://hi.baidu.com/hibydu/blog/item/ef9b17fab7c1a51ca8d3119e.html
而用function可以定义的是类,两种差不多,但本质上稍微有点区别
定义数组可以用new Array(),也可以直接定义
var arr=[ "a ", "b "];