var LiveValidation = function(element, optionsObj){
   this.initialize(element, optionsObj);
}
这句,定义了一个函数。但是里面的那个initialize;从哪里来的。而且怎么还传参数呢?
var Class = { 
create: function() { 
  return function() { 
    this.initialize.apply(this, arguments); 
  } 

} 这个还能凑活看懂。this.initialize.apply(this, arguments);这里有apply函数。而上面那个没有。。请大侠解释一下。
谢谢。。

解决方案 »

  1.   

    var LiveValidation = function(element, optionsObj){
      this.initialize(element, optionsObj);
    }
    同样是js初学者:我的理解是这定义了一个类(伪类,js没有真正意义的类)
    你的代码不完整后面某个地方肯定
    initialize 这是这个类的公共初始化方法
    LiveValidation.prototype.initialize=function(e,opts){
      // TODO
    }下面这个要等高手解答了
      

  2.   

    补充,上面考虑不全面,也有一种可能就是LiveValidation 这个类继承自另一个类,在那个类中定义了initialize这个方法
      

  3.   

    LiveValidation.prototype = {    validClass: 'LV_valid',
        invalidClass: 'LV_invalid',
        messageClass: 'LV_validation_message',
        validFieldClass: 'LV_valid_field',
        invalidFieldClass: 'LV_invalid_field',    /**
         * initialises all of the properties and events
         *
         * @var - Same as constructor above
         */
        initialize: function(element, optionsObj){
          var self = this;
          if(!element) throw new Error("LiveValidation::initialize - No element reference or element id has been provided!");
         this.element = element.nodeName ? element : document.getElementById(element);
         if(!this.element) throw new Error("LiveValidation::initialize - No element with reference or id of '" + element + "' exists!");
          // default properties that could not be initialised above
         this.validations = [];
          this.elementType = this.getElementType();
          this.form = this.element.form;
          // options
         var options = optionsObj || {};
         this.validMessage = options.validMessage || 'Thankyou!';
         var node = options.insertAfterWhatNode || this.element;
    this.insertAfterWhatNode = node.nodeType ? node : document.getElementById(node);
          this.onValid = options.onValid || function(){ this.insertMessage(this.createMessageSpan()); this.addFieldClass(); };
          this.onInvalid = options.onInvalid || function(){ this.insertMessage(this.createMessageSpan()); this.addFieldClass(); };
         this.onlyOnBlur =  options.onlyOnBlur || false;
         this.wait = options.wait || 0;
          this.onlyOnSubmit = options.onlyOnSubmit || false;
          // add to form if it has been provided
          if(this.form){
            this.formObj = LiveValidationForm.getInstance(this.form);
            this.formObj.addField(this);
          }
    ……
    感谢各位提醒。
    确实是在prototype中有实现下次还是看仔细点呵呵