Coder at the Doorsill——风中聆听

——走自己的路,让别人打的去吧。
posts - 70, comments - 385, trackbacks - 14, articles - 19
   :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

prototype.js学习笔记(二)

Posted on 2006-09-26 02:32 风中聆听 阅读(555) 评论(0)  编辑 收藏 所属分类: JavaScript
Using the $F() function

$F()方法是另一个非常受欢迎的简写。它可以返回任何输入表单控件的值,如文本框或下拉框。 这个方法可以传入元素的 id 或者元素自己。
可以先看示例:
<script>
function test3()
{
alert( $F('userName') );
}
</script>
<input type="text" id="userName" value="Joe Doe"><br>
<input type="button" value=Test3 onclick="test3();"><br>

再来学习源码中的相关代码:
Form对象

Form.Element对象

Form.Element.Serializers 对象

var $F = Form.Element.getValue;


要看懂这些代码,首先必须知道Javascript中的对象直接量、函数直接量是怎么一回事。

在Javascript中对象内的元素是一个关联数组。请看下面的例子,car 对象的第一个元素定义了一个属性,myCar;第二个元素,getCar 属性调用一个函数(Cars("honda"))。第三个元素,用了一个已存在的变量指定的属性(Sales)。
var Sales = "Toyota";
function CarTypes(name) {
 
if(name == "Honda")
  
return name;
 
else
  
return "Sorry, we don't sell " + name + ".";
}

car 
= {myCar: "Saturn", getCar: CarTypes("Honda"), special: Sales}
document.write(car.myCar); 
// Saturn
document.write(car.getCar); // Honda
document.write(car.special); // Toyota 

另外,您可以在对象内使用索引、索引属性(例如7)或进行对象的嵌套。请看下例:
car = {manyCars: {a: "Saab", b: "Jeep"}7"Mazda"}
document.write(car.manyCars.b); 
// Jeep
document.write(car[7]); // Mazda 

与对象直接量相应地,也存在函数直接量,即是把匿名函数作为值赋给某元素。看例子:
普通:
function average(x,y) {
  
return (x+y)/2;
}

var z = average(1,3);
alert(z);
构造:
var z = new Function("x","y","return(x+y)/2");
直接:
var z = function(x,y) {
      
return (x+y)/2;
    }
 (1,3);
alert(z);
一个匿名函数就是一个没有名字的函数。你可以认为他们是一次性函数。当你只需要用一次某个函数式,他们就特别有用。通过使用匿名函数,没有必要把函数一直放在内存中,所以使用匿名函数更加有效率。上面几个函数处理同样的事情,第一种方面中average在给z赋值结束之后一直保留——但匿名函数则不会;而第二个要调用一个构造器,第三种则是引擎直接解释的,相比之下是最有效率的。


参考:
http://www.nirvanastudio.org/wp-content/uploads/2006/04/Functional_JavaScript_Programming.htm
http://cheminfo.tongji.edu.cn/cn/docs/javascript/javascript.htm


<待续>

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-09-26 09:42 编辑过


相关链接: