请学习 prototype 的用法 MyDom  是一个对象,不具有 prototype 属性
何况 你应该 var MyDom = new Object();注意大小写
应该如下写法
Object.prototype.$ = function(e)
{
return document.getElementById(e);
}
var test = new Object();
alert(test.$("00"));

解决方案 »

  1.   

    使用$()方法
    $() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。比起DOM中的方法,这个更胜一筹。你可以传入多个id作为参数然后 $() 返回一个带有所有要求的元素的一个 Array 对象。<HTML><HEAD><TITLE> Test Page </TITLE><script src="prototype-1.3.1.js"></script><script>function test1(){var d = $('myDiv');alert(d.innerHTML);}function test2(){var divs = $('myDiv','myOtherDiv');for(i=0; i<divs.length; i++){alert(divs[i].innerHTML);}}</script></HEAD><BODY><div id="myDiv"><p>This is a paragraph</p></div><div id="myOtherDiv"><p>This is another paragraph</p></div><input type="button" value=Test1 onclick="test1();"><br><input type="button" value=Test2 onclick="test2();"><br></BODY></HTML>下面的这个getObject方法和$符号是一样的意思:function getObject(elementId){ if (document.getElementById) {  return document.getElementById(elementId); }else if(document.all) {  return document.all[elementId]; }else if(document.layers) {  return document.layers[elementId]; } } 
      

  2.   

    function MyDom()
    {
    }
    MyDom.prototype =
    {
    $:function(e){
            return document.getElementById(e);
    }
    }定义一个新的对象原型时不能var定义,var MyDom这句实际上是已经创建一个对象实例,而不是原型,所以不能用new MyDom来创建一个对象~~要给对象添加属性时可以写成:
    function MyDom(id){
    this.id=id;
    }
    MyDom.prototype =
    {
    $:function(e){
            return document.getElementById(this.id);
    }
    }如果是定义一个对象实例,就可以直接引用,而无需要创建新的对象了,如:var MyDom=new Object();
        MyDom.$=function(e)
        {
            return document.getElementById(e);
        }
    alert(MyDom.$("00"));