我想利用Prototype.js的面向对象API编写自己的面向对象代码如下:
但是报错。:请大师解答。
this.initialize has no properties
[Break on this error] this.initialize.apply(this, arguments);
代码如下:
var Widget = new Object();
Widget.CodeInput = Class.create();  //这步里出错的。
Widget.CodeInput.prototype = {
initialize: function(element) {
alert(element);
},
getHint: function() {
//var va = this.element.getElementByClassName('hint')[0].value;
//alert(va);
}
}

解决方案 »

  1.   

    var Widget = {};
    Widget.CodeInput = Class.create();  //这步里出错的。
    Widget.CodeInput.prototype = {
    initialize: function(element) {
    alert(element);
    },
    getHint: function() {
    //var va = this.element.getElementByClassName('hint')[0].value;
    //alert(va);
    }
    }
      

  2.   

    帮你测了一下,你的代码是正确的。
    看看你的Prototype.js是不是不完整或者版本不新
    去下个1.5版的Prototype.js试一下呢!
    http://prototypejs.org/assets/2007/1/18/prototype.js    var Widget = {};
        Widget.CodeInput = Class.create();  //这步里出错的。
        Widget.CodeInput.prototype = 
        {
            initialize: function(element) 
            {
                alert(element);
            },
            getHint: function() 
            {
                //var va = this.element.getElementByClassName('hint')[0].value;
                //alert(va);
            }
        }
        
        function testWidget()
        {
            var CodeInput = new Widget.CodeInput("测试一下");
        }
      

  3.   

    正如楼上所说,代码没有错。你是如何创建对象的呢?
    如果是创建Widget.CodeInput的实例就不会出错,
    但如果是创建new Widget()在IE6中会报错
      

  4.   

    你代码中的 
    var Widget = new Object(); 
    改为 
    var Widget = {};