JS&DOM中对象的问题?
w3c上说js&dom中的对象分为:JavaScript对象、HTML对象、HTMLDOM对象。我们平时用的document.getElementById()所返回的对象...
w3c上说js&dom中的对象分为:JavaScript对象、HTML对象、HTML DOM对象。我们平时用的document.getElementById()所返回的对象,到底是HTML DOM中的DOM Element对象还是HTML中的对象?例如:body中有一个table,id是t1。Js中这样写var t = document.getElementById("t1")。这个t到底是DOM Element对象中的element对象还是HTML对象中的table对象?因为t既可以调用table对象中的方法或属性,又可以调用DOM Element对象中的方法或属性。我可以这样理解,table对象继承了element对象,table对象本身也是element对象么?
既然有table对象,也有option对象。除了通过CreatElement()来创建对象,我想通过new方法来创建一个table对象为什么不行?就是var t = new Table(); 但是 var t = new Option();就可以!w3c上明明说有table和option对象! 展开
既然有table对象,也有option对象。除了通过CreatElement()来创建对象,我想通过new方法来创建一个table对象为什么不行?就是var t = new Table(); 但是 var t = new Option();就可以!w3c上明明说有table和option对象! 展开
1个回答
展开全部
您好:首先对对象这个词的理解还是有偏差。在js中任何一个东西,例如var a='123',1,function(){}等等。不管是字面量,还是函数,还是常量等等,这些都是一个对象。
再就是DOM对象就是一个文档对象,你网页中右键查看源代码,这里面所有的东西都是属于DOM对象。而HTML是超文本标记语言,和C#,JAVA同类,是用来区分语言的。所以有些书籍中很多会把这几个概念复杂化。来显示自己高超的水平(其实啥都不是,中国作者的通病)。你就记住一个dom对象就OK了。
var t = document.getElementById("t1");意思就是从dom对象,也就是整个dom文档中,找出id是t1的标签。所以getElementById肯定是属于dom对象中的一个公用方法。t是你声明的一个对象,这个对象包含公有的几个属性和方法。这是在js语言规范中规定的。就像你出生后有耳朵,有鼻子这些都是作为人所公有的。对象也是一样,这几个属性和方法也是对象公有的。那另外的就是每个人特有的了。所以t只是一个指向这个标签的一个对象。new关键词是创建新的一块内存区域,把值放进去。所以这个t本身不是element对象。因为他本身不是存在与文档中的。而是存在与js运行环境中的。
至于var t=new Table为什么不行。那就不是我们该管的事了。那你的找谁设计的js呢?
您可以看看此文章:http://www.blogjava.net/rosen/archive/2009/09/13/294921.html
再就是DOM对象就是一个文档对象,你网页中右键查看源代码,这里面所有的东西都是属于DOM对象。而HTML是超文本标记语言,和C#,JAVA同类,是用来区分语言的。所以有些书籍中很多会把这几个概念复杂化。来显示自己高超的水平(其实啥都不是,中国作者的通病)。你就记住一个dom对象就OK了。
var t = document.getElementById("t1");意思就是从dom对象,也就是整个dom文档中,找出id是t1的标签。所以getElementById肯定是属于dom对象中的一个公用方法。t是你声明的一个对象,这个对象包含公有的几个属性和方法。这是在js语言规范中规定的。就像你出生后有耳朵,有鼻子这些都是作为人所公有的。对象也是一样,这几个属性和方法也是对象公有的。那另外的就是每个人特有的了。所以t只是一个指向这个标签的一个对象。new关键词是创建新的一块内存区域,把值放进去。所以这个t本身不是element对象。因为他本身不是存在与文档中的。而是存在与js运行环境中的。
至于var t=new Table为什么不行。那就不是我们该管的事了。那你的找谁设计的js呢?
您可以看看此文章:http://www.blogjava.net/rosen/archive/2009/09/13/294921.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询