易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript 的forEach函数

在Base2中找到一个叫forEach的函数,是我见过的最好的实现。挖出来分析一下。它能对各种普通对象,字符串,数组以及类数组进行遍历。如果原游览器的对象已实现此函数,它则调用原对象的函数。
function forEach(object, block, context, fn) {
if (object == null) return;
if (!fn) {
if (typeof object == "function" && object.call) {
//遍历普通对象
fn = Function;
} else if (typeof object.forEach == "function" && object.forEach != arguments.callee) {
//如果目标已经实现了forEach方法,则使用它自己的forEach方法(如标准游览器的Array对象)
object.forEach(block, context);
return;
} else if (typeof object.length == "number") {
// 如果是类数组对象或IE的数组对象
_Array_forEach(object, block, context);
return;
}
}
_Function_forEach(fn || Object, object, block, context);
};
function _Array_forEach(array, block, context) {
if (array == null) return;
var i = 0,length = array.length;
if (typeof array == "string") {
for (; i < length; i++) {
block.call(context, array.charAt(i), i, array);
}
}else{
for (;i < length; i++) {
block.call(context, array[i], i, array);
}
}
};
function _Function_forEach(fn, object, block, context) {//惰性函数
// 此为隋性函数,第一次重写自身
_Function_forEach = function(fn, object, block, context) {
// 这里的fn恒为Function
for (var key in object) {
//只遍历本地属性
if (object.hasOwnProperty(key)) {
//相当于 block(object[key], key)
block.call(context, object[key], key, object);
}
}
};
_Function_forEach(fn, object, block, context);
};
原作者的一些例子(我翻墙扒过来了!):
function print(el,index){
alert(index+" : "+el)
}
forEach ([1, 2, 3], print);
forEach ({a: "aa", b


相关文档:

JavaScript 常用55个例子

 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" onc ......

用JavaScript获取客户端MAC地址(转)

 <HTML>  
<HEAD><TITLE>WMI Scripting HTML</TITLE>  
    <META http-equiv=Content-Type content="text/html; charset=gb2312">  
    <SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, p ......

关于Javascript构造函数,类初始化实例

 var Class = {
 create: function() {
  return function() {
   this.initialize.apply(this, arguments);
  }
 }
}
  这是prototype.js里面的类构造方法,使用方法是:
  var myClass = Class.create();
  这样就可以创建一个类了。
  继续加入:
myClass.prototype =
{
 x : func ......

Javascript中最常用的55个经典技巧

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......

VRML与Javascript和VBscript交互的实例

 现将代码贴出,共勉!
HTML部分:=====================================================
<html>
<head>
<script language="VBscript">
<!--
function M_b()
 set M_e=Scene.Engine
 M_e.Nodes("MyScript").Fields("nodestring")="Shape {geometry Box{}}"
 M_e.Nodes ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号