prototype 1.5相关知识及他人笔记

2019-06-03 14:36:33于海丽

<div id="placeholder"></div>




如果你的服务器逻辑是返回JavaScript 代码而不是单纯的 HTML 标记, Ajax.Updater对象可以执行那段JavaScript代码。为了使这个对象对待响应为JavaScript,你只需在最后参数的对象构造方法中简单加入evalScripts: true属性。
最近做otalk,开始是基于prototype1.4的,后来因为我加上了scriptaculous 1.6.1,她要求prototype的版本是1.5的,所以就升级到了1.5,看着demo学习起了scriptaculous的用法. 
用法稍后整理,因为在使用过程中很多次效果都不让自己满意,想看代码又看不明白,经过一次折磨,我下定决心,一定要把scriptaculous和prototype的代码看明白! 
这里作为我的学习笔记,可能没有什么顺序了逻辑,等到学习完,最后整理 
首先是定义类  看着笑笑老师的一些介绍,自己看是试验起来,往往很多东西看了觉着明白,其实还是差很多的 
var Class = { 
  create: function() { 
    return function() { 
      this.initialize.apply(this, arguments); 
    } 
  } 

定义了一个class函数作为创建类的模版或者说是原型 
使用方法 
var llinzzi= Class.create(); 
llinzzi.prototype = { 
    initialize:function(){ 
          document.write('实例被创建'); 
    }, 
    fun1:function(){document.write('方法被实例调用');} 

var linChild = new llinzzi(); 
运行,输出'实例被创建'说明initialize是创建实例的时候被调用的 
回顾 Class代码中 
    return function() { 
      this.initialize.apply(this, arguments); 
    } 
看出,当执行create方法时,就开始调用. 
linChild.fun1(); 
输出'方法被实例调用',fun1方法被成功调用 
就是当采用了prototype的Class.create();方法创建对象的时候,initialize作为特殊的方法,在创建实例的时候被执行,用以初始化. 
续承 
Object.extend = function(destination, source) { 
  for (var property in source) { 
    destination[property] = source[property]; 
  } 
  return destination; 

用法 
Object.extend(目标,源); 
让我产生奇怪的是scriptaculous中的一段代码 
    var options = Object.extend({