MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools跟prototypejs相类似,语法几乎一样。但它提供的功能要比prototypejs多,而且更强大。比如增加了动画特效、拖放操作等等。建议大家可以用它来代替prototypejs。

        Hash的include方法是如何原Hash中不包含要包含的键,包含新的键值对。但是在使用时,当该键所对应的值是null是,该键值对会替换原来值为null的项。看下include的源码:

    include: function(key, value){
if (this[key] == undefined) this[key] = value;
return this;
}
  判断该键是否存在的方法是判断this[key]是否defined,所有当值为null时候,会设置key的值为新的value。
  看下测试代码:
<script type="text/javascript">
window.addEvent("domready", function() {
var myHash = new Hash({
"a": 1,
"b": "b",
"c": true
});
show(myHash);
myHash.include("a", "a");
show(myHash);
});
var show = function ShowHash(myHash) {
myHash.each(function(value, key) {
alert("The value of key[" + key + "] is :" + value);
});
}
</script>
 
   两次都是a的值都是1,说明当键存在的时候不能在include。
   Mootools:Hash中的null值 

      

     把myHash的“a”改为null:

<script type="text/javascript">
window.addEvent("domready", function() {
var myHash = new Hash({
"a": null,
"b": "b",
"c": true
});
show(myHash);
myHash.include("a", "a");
show(myHash);
});
var show = function ShowHash(myHash) {
myHash.each(function(value, key) {
alert("The value of key[" + key + "] is :" + value);
});
}
</script>
    
    结果为:
    Mootools:Hash中的null值 Mootools:Hash中的null值 
    
    原来的null值被改为值a。
 
    

相关文章: