<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javascript高级语法1-函数</title>
</head>
<body>
<script>
function print(p){
console.log(p.toString(),p)
}
/*
var arr= new Array();
arr.push(1);
arr.push(2);
arr.push(3);
arr.push(4);
print(arr);
print(arr.join(":"))
var arr2 = [5,6,7,8]
print(arr.concat(arr2))
//each() 扩展函数的方法
Array.each = function(array,fn){
for(var i=0;i<array.length;i++){
fn(array[i]);
}
}
Array.each(arr,function(v){
print(v);
}) //回调函数定义
function add(x,y,fn){
this.x=x||1;
this.y=y||1;
if(fn){
fn(this.x + this.y);
}
} add(3,5,function(v){
if(v>5){
alert("res >5")
}else{
alert(res <=5"")
}
}) //函数传参
//1.参数传递随意性(可以少传或多传参数)
function add(x,y,z){
this.x = x||0;
this.y = y||0;
this.z = z||0;
alert(this.x+this.y+this.z);
} add(12,3,4,5);
//弊端:无法像java等高级语言那样有函数精确复写的特性。
//技巧:如果你这个类是工具类的情况下,那么接收的参数最好是对象。
//conf={gridName:"",gridCode:"",gridSize:""}
function gridUtil(conf){
alert(conf["gridName"]+conf["gridSize"]);
}
gridUtil({gridName:"zhangsan",gridSize:"20"}) //传值还是传地址
var i = 100;
var s = "one";
function add3(i,s){
i++;
s+="--"
}
add3();
alert(i);
alert(s); //证明基础变量传递数值。 var o = {name:"zhangdan"};
function change(o){
o["name"] = "javascript";
}
change(o);
alert(o.name); //证明自定义对象传参方式传的是地址。 //函数递归
function add4(start,end){
var num= 0;
num += start;
if(start<end){
num += add4(start+1,end);
}
return num
}
alert(add4(1,100)); //代理函数--》 用程序来决定返回的新的函数(生产函数的函数)
//模拟数据库
var person = {"jim":'m',"lili":"w"}
var test = function(name){
if(person[name]=="m"){
return function(nk,wk){
alert(nk+" "+wk);
}
}else if(person[name]=="w"){
return function(nk,wk,fk){
alert(nk+" "+wk+" "+fk);
}
}
}
test("jim")("ok","ok");
test("lili")("ok","ok","no");
//前端代码不常用,会使代码复杂化。架构常用。 */ //eval()函数 --》把一个字符串解析成一个函数并执行
var str = "var show = function(){alert(100)}()";
eval(str);
// 应用场景:数据库有时候会返回一个字符串(长得像js数组);
var a = "[1,2,3]";
var arr = eval(a);
for(var i = 0;i<arr.length;i++){
console.log(arr[i]);
} </script>
</body>
</html>

JavaScript设计模式-1.函数的更多相关文章

  1. JavaScript 设计模式 - 工具函数

    1.类式继承,模拟面向对象语言的继承方式 function extend(subClass, superClass) { var F = function() {}; F.prototype = su ...

  2. JavaScript设计模式与开发实践——读书笔记1.高阶函数(上)

    说来惭愧,4个多月未更新了.4月份以后就开始忙起来了,论文.毕设.毕业旅行等七七八八的事情占据了很多时间,毕业之后开始忙碌的工作,这期间一直想写博客,但是一直没能静下心写.这段时间在看<Java ...

  3. 《JavaScript设计模式 张》整理

    最近在研读另外一本关于设计模式的书<JavaScript设计模式>,这本书中描述了更多的设计模式. 一.创建型设计模式 包括简单工厂.工厂方法.抽象工厂.建造者.原型和单例模式. 1)简单 ...

  4. 《JavaScript设计模式与开发实践》整理

    最近在研读一本书<JavaScript设计模式与开发实践>,进阶用的. 一.高阶函数 高阶函数是指至少满足下列条件之一的函数. 1. 函数可以作为参数被传递. 2. 函数可以作为返回值输出 ...

  5. Javascript设计模式学习一

    学习Javascript设计模式之前,需要先了解一些相关知识,面向对象的基础知识.this等重要概念,以及掌握一些函数式编程的技巧. Js多态 多态的思想:实际上是把“做什么”和“谁去做”分离开来.例 ...

  6. javascript设计模式实践之职责链--具有百叶窗切换图片效果的JQuery插件(三)

    在上一篇<javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)>里,通过采用模板方法模式完成了切换效果对象的构建编写. 接下来就是完成各效果对象的调 ...

  7. javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)

    在上一篇<javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)>里,通过采用迭代器模式完成了各初始化函数的定义和调用. 接下来就要完成各个切换效果的编 ...

  8. javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)

    类似于幻灯片的切换效果,有时需要在网页中完成一些图片的自动切换效果,比如广告,宣传,产品介绍之类的,那么单纯的切就没意思了,需要在切换的时候通过一些效果使得切换生动些. 比较常用之一的就是窗帘切换了. ...

  9. 常用的Javascript设计模式

    <parctical common lisp>的作者曾说,如果你需要一种模式,那一定是哪里出了问题.他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案. 不管是弱类型 ...

随机推荐

  1. Baidu Map开发示例

    1.获取SHA1码 在Eclipse中点击“Windows”----->“Preferences” ----->“Android” ----->“Build”如下图: 打开“Win+ ...

  2. 18-10-30 Scrum Meeting 2

    目录 站立式会议 工作记录 昨天完成的工作 1 主要完成了单词简单释义浏览和单词详细释义浏览的功能 并且已经测试和上传eolinker 2 3 主要搭建起爬虫的框架平台,并且测试了py连接服务器的功能 ...

  3. cocos2dx的addChild接口设计

    addChild的几个重载函数挺容易用错的 主要是因为cocos2dx用来给游戏对象设置标签时,用的是整型而不是字符串 导致标签这个参数很容易和同样是使用整型的代表游戏对象的层级关系的参数混淆.

  4. Java反射API研究(3)——java.lang.Class<T>

    对于反射来说,Class是核心,任何反射的对象都需要通过Class来获得. Class 类的实例表示正在运行的 Java 应用程序中的类和接口.枚举是一种类,注释是一种接口.每个数组属于被映射为 Cl ...

  5. 注册一个GitHub用户的过程

    今天,我注册了一个GitHub用户.一开始,不知道GitHub是什么,还以为叫什么"getup",心里还想着什么网站名字这么奇怪,后来在舍友的帮助之下知道了原来是叫GitHub.下 ...

  6. onenote无法更新,提示无法流式传输、无法登陆等问题解答

    onenote无法更新,提示无法流式传输 修改DNS 4.2.2.1 和 4.2.2.2 onenote反复提示登录 升级到IE11

  7. TSQL--验证身份证是否有效

    /****** Object: UserDefinedFunction [dbo].[udf_IsvalidIDCard] Script Date: 02/27/2014 16:03:20 ***** ...

  8. NPOI设置Excel单元格字体、边框、对齐、背景色

    代码: ICellStyle cellStyle = workbook.CreateCellStyle(); cellStyle.BorderBottom = BorderStyle.Thin; ce ...

  9. asp.net mvc 3 linq实现数据的增、删、改、查、

    添加数据 定义一个对象: public class Student { public int id{get; set;} public string Name{get;set;} public str ...

  10. sharepoint 版本信息查看

    #检查版本:# PowerShell script to display SharePoint products from the registry. Param( # decide on wheth ...