一个优美的Js代码

<!-- ———————————————— JS原型(prototype) ———————————————————— -->
//实现 array each(循环数组的每一项)
var arr=[1,3,4,2];
arr.forEach(function(item,index,array){
//alert(item);
});
var arr2=[1,3,23,[12,[13,[45]]]];
Array.prototype.each=function(fn){
//目的 遍历数组的每一项
try{
//计数器 记录当前遍历元素的位置
this.i||(this.i=0);
//判断什么时候进入
if(this.length>0&&fn.constructor==Function){
//遍历数组的每一项
while(this.i<this.length){
//获取数组的每一项
var e=this[this.i];
//判断元素存在并且是数组
if(e&&e.constructor==Array){
e.each(fn);
}else{
//使用绑定的方式
//fn.apply(e,[e]);
fn.call(e,e);
}
this.i++;
}
this.i=null;//释放内存
}
}catch(ex){
}
}
arr2.each(function(item){alert(item);});

时间: 2024-08-02 06:55:05

一个优美的Js代码的相关文章

5秒后跳转到另一个页面的js代码

今天看视频学习时学习了一种新技术,即平时我们在一个页面点击"提交"或"确认"会自动跳转到一个页面. 在网上搜了一下,关于这个技术处理有多种方法,我只记下我在视频里学到的三种: 1.用一个response.sendRedirect("目标页面.jsp\.htm");实现直接跳转: 2.有时我们需要有点提示,比如"x秒后自动跳转,若没有跳转,请点击此处",则可以在myeclipse中调用Snippets中的Delay Go To

一行JS代码屏蔽一个网站的访问

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

一个只有99行代码的JS流程框架

最近一直在想一个问题,如何能让js代码写起来更语义化和更具有可读性. 上周末的时候突发奇想,当代码在运行的时候,其实跟我们做事情是类似的,都是做完一步接着下一步,并且这些事情有些是可规划的,有些是需要做完该步才知道下一步该做什么.想到这里一个js框架雏形在我大脑中慢慢形成,暂且命名为flowJS. 接着说说这个框架应该有哪些API? 1.可以预先规划好流程的每一步,如this.setNext('步骤A').setNext('步骤B')-- 2.可以在任何一步决定下一步做什么,如 this.set

你相信么,只需一个函数5行JS代码即可在Javascript中实现完整的AOP功能

你相信么,只需一个函数5行JS代码即可在Javascript中实现完整的AOP功能, 你相信么,在JavaScript只需一个函数5行代码即可实现完整的面向方面AOP编程功能.这5行代码的功能包括: 无限层次的函数无害拦截 函数执行前拦截 检查函数的参数值 重新设定函数的参数值 函数执行后拦截 检查函数执行后的返回结果 重新设定函数的返回结果 虽然动态函数式语言的效率是一个存在的问题,但是对于它的高度灵活性,简直让人令人惊叹不已,剧赞. 这个小小的函数源自于和爱明兄的一次讨论:在javascri

去年方百度首页播放器写的一个js代码,先记录一下,不支持火狐了,改天用autio改改

播放器内核使用的是 object 或embed 刚刚测试了下,最新的火狐不支持了,IE 360还能用,改天换成audio来做吧 这里先记录下来 支持下一曲,暂停,开始 使用方法很简单: 该代码很简单,使用js实现,使用方法很简单 1.引入css:<link href="css/StyleSheet.css" rel="stylesheet" type="text/css" />2.引入js:<script src="j

一个基于 EasyUI 的前台架构(3)封装操作Tabs的JS代码

一般来说,系统框架的主内容区会引入另一个独立的 Web 页面来实现系统的功能,所以在在 Tabs 里的每一个标签页里使用 iframe 标签来引入子页面.所以这里可以将 Tabs 的 Content 属性值设为一个 <iframe> 标签即可.比如: $("#tabs").tabs('add',{ title: "百度搜索", content: '<iframe style="width:100%;height:100%;" s

一个只有99行代码的JS流程框架(二)

张镇圳,腾讯Web前端高级工程师,对内部系统前端建设有多年经验,喜欢钻研捣鼓各种前端组件和框架. 导语 前面写了一篇文章,叫<一个只有99行代码的JS流程框架>,虽然该框架基本已经能实现一个流程正常的逻辑流转,但是在分模块应用下还是缺少一定的能力,无法将一个页面中的不同模块很好的连接在一起,于是对之前的框架进行了升级,新增了子流程的概念. 子流程 什么是子流程?在这个升级后的框架里(当然代码已经不止99行了,不要在乎标题),每个步骤不但可以是一个function,还可以引用另一个流程,这个被引

分享一个ASP.NET开发中经常碰到的小问题,修改好的js代码保存生成后,在运行调试时却还是修改前的代码

记得刚开始学ASP.NET的时候就遇到过这个问题,各种无语,明明本地代码改了,保存生成了N遍,甚至重开VS,清浏览器缓存,都没用,调试起来就还是修改之前的js代码,上网查了半天也没查到解释,倒是有人提同样的问题,但是没人能给出答案. 于是那段时间很悲剧的只能每次出现这个问题,就重新建一个Web项目,把代码粘过去... 后来我尝试了下把VS升级到了2013,之后似乎就没出现过这个问题了,于是就以为就是VS2010的bug. 最近到了一家新公司,公司统一用VS2010,于是这个问题就又出现了..但是

后端传过来一个JS代码,前端拿到之后执行

今天收到了一个需求,居然是后端给我传过来一个JS代码,然后前端去执行. 因为后端传过来的JS代码是一个字符串,所以刚开始有点懵,以前也没有做过这样的东西所以刚开始没有方法. 这个项目是使用了前后端分离的格式,所以代码在服务器渲染是不可能了,所以只能在浏览器端想方法. 再网上扎到了几个方法, 一.使用Function方法,代码为如下 var str = 'alert(1)';(new Function(str))(); 二.使用eval方法 var str = 'alert(1)';eval(st