1. arguments
在函数内部,arguments表示传入进来的参数,是个类似数组的Object。
function add(x, y, z) {
if (arguments.length != 3) {
throw new Error("f should called with 3 arguments!");
}
return x + y + z;
}
function max(/* ... */) {
var rst = Number.NEGATIVE_INFINITY;
for (var i = 0 ; i < arguments.length; ++i) {
if (arguments[i] > rst) {
rst = arguments[i];
}
}
return rst;
}
var f = function(x) {if (x <= 1) return 1; else return x * arguments.callee(x-1);}
document.write("1 + 2 + 3 = " + add(1, 2, 3) + "<br>");
//! document.write("1 + 2 = " + add(1, 2) + "<br>"); //throws Error
document.write("the max of 1, -10, -100, 2000, 5000, -10000 is "
+ max(1, -10, -100, 2000, 5000, -10000) + "<br>"
);
document.write("4! = " + f(4) + "<br>");
2. Javascript对待function其实和数据是一样的。
function add(x,y) {return x + y;}
function sub(x,y) {return x - y;}
function mul(x,y) {return x * y;}
function div(x,y) {return x / y;}
function operate(operator, op1, op2) {
return operator(op1, op2);
}
// i = (2 + 3) + (4 x 5)
var i = operate(add, operate(add, 2, 3), operate(mul, 4, 5));
document.write("(2 + 3) + (4 x 5) = " + i + "<br>");
3. 可以把一个function当作data赋值给一个object,这时这个function就是这个object的方法。
并且可以使用关键字this
var calculator = new Object();
calculator.op1 = 1;
calculator.op2 = 2;
calculator.op = function() {
this.result = this.op1 + this.op2;
}
calculator.op();
document.write("1 + 2 = " + calculator.result + "<br>");
4. length 和 callee两个属性
function check(args) {
if (args.length != args.callee.length) {
throw new Error("Wrong number of arguments!!!");
}
}
function add1(x, y, z) {
return x + y + z;
}
function add2(x, y, z) {
check(arguments);
return x + y + z;
}
document.write(add1("I", " love", " you!") + "<br>");
document.write(add1("I", " love") + "<br>");
document.write(add2("I", " love", " you!") + "<br>");
document.write(add2("I", " love") + "<br>");
5. call()和apply两个方法
function foo(x) {
document.write(x + "<br>");
}
foo(10);
foo.call(null,10);
6. closure
7. Function -- 作用域是不太一样的
var y = "global";
function constructFunction() {
var y = "local";
return new Function("return y"); // Does not capture the local scope!
}
// This line displays "global" because the function returned by the
// Function() constructor does not use the local scope. Had a function
// literal been used instead, this line would have displayed "local".
alert(constructFunction()()); // Displays "global"
分享到:
相关推荐
Chapter 8 function-homework.ipynb
在Java 8中,`Function`接口是这些接口的一个典型代表。 `Function, R>`接口位于`java.util.function`包下,它定义了一个从类型`T`到类型`R`的转换方法`apply(T t)`。这个接口允许我们定义一个接受一个参数并返回一...
Java8通过Function获取字段名的步骤 Java8通过Function获取字段名是指在Java8中使用Function函数式编程来获取Java对象的字段名。这个步骤主要解决了硬编码的问题,效果类似于MyBatis-Plus的LambdaQueryWrapper。 ...
8. **采样时间** - 采样时间是指S-Function更新其输出的频率。 - S-Function可以有固定的采样时间,也可以是可变的。 #### 结论 通过上述章节的介绍,我们对MATLAB的S-Function有了全面的理解。S-Function不仅...
总之,理解并熟练使用Java 8的Consumer、Supplier、Predicate和Function接口,对于提升代码质量、减少冗余代码以及编写更高效的程序具有重要意义。在日常开发中,应尽可能利用这些接口来实现简洁的函数式编程风格。
SAP Partner Function 的两重值之迷 在 SAP 系统中,Partner Function 是一个非常重要的概念,它在业务流程中的应用非常广泛。今天,我们来讨论一个关于 Partner Function 的两重值的问题。这个问题来自于一个报表...
### VC、VB、C#与Flash 8 结合开发中 CallFunction 的运用 在软件开发领域,特别是多媒体应用开发过程中,结合使用不同的编程语言和技术框架是常见做法之一。本篇文章将详细探讨如何利用Visual C++(简称VC)、...
S-Function 可以使用MATLAB®,C,C ,Ada,或Fortran 语言来编写。使用MEX 实用工具,将C,C ,Ada,和Fortran 语言的S-Function 编译成MEX-文件,在需要的时候,它们可与其它的MEX-文件一起动态地连接到MATLAB 中...
FAST v8 版本S_function 的资源,可以在Simulink中利用NREL的FAST code 进行风力机的仿真
3. **调用函数**:在SQL查询中,我们可以通过函数名和参数来调用这个函数,如`SELECT add_numbers(3, 5)`,它将返回8。 4. **注意事项**:函数必须是确定性的,即对于相同的输入,总是返回相同的结果。此外,函数...
// 输出 "8" trace(multiplyByThree(4)); // 输出 "12" ``` 四、闭包 闭包是ActionScript中一个强大的特性,它允许函数访问并操作其外部作用域的变量,即使在其定义的作用域之外。这在处理异步操作、缓存或延迟...
8. **非线性PID控制器**:在`利用Matlab的S_Function实现非线性PID控制_周英玉.caj`文件中,可能详细阐述了如何利用S-Function构建一个非线性PID控制器,这通常涉及到将传统的PID算法扩展到包含非线性特性,如饱和、...
8. Rotated hyper-ellipsoid function:旋转的超椭球函数,增加了寻找最小值的难度,测试算法对目标函数旋转不变性的处理。 9. Sum of different power function:不同幂次之和函数,挑战算法处理非线性和不均匀...
8. S-Function的命名规则与实现细节:文档中提到了"S-FUNCTIN"等可能由于OCR识别错误造成的术语,但可以理解为在编程S-Function时需要遵循特定的命名规则和实现规范,例如M-file开关标志(flag)以及如何设置系统...
8. **插件系统** function-plot具有丰富的插件系统,可以通过安装和使用插件来增强功能,例如添加缩放、平移、图例等交互功能。 9. **社区与文档** 函数-plot拥有活跃的开发者社区,提供了详尽的文档和示例,帮助...
8. 仿真:运行Simulink模型以观察系统性能,可以调整参数以优化控制效果。 在给定的压缩文件中,2b2bed25b1084efa8a99f6b57a25efc7可能是包含了具体实现的S-Function源代码文件或相关文档。通过解压并研究这些文件...
If Mid(server_v1, 8, Len(server_v2)) <> server_v2 Then chkpost = False Else chkpost = True End If End Function ``` 该函数的工作原理是通过比较HTTP_REFERER头中的URL与当前服务器名称是否一致来判断。...