<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> 1、函数简介 函数也是一个对象,也具有普通对象的功能,除了基本数据类型外,一切都是对象 - 函数中可以封装一些代码,在需要的时候可以去调用函数来执行这些代码 - 使用typeof检查一个函数时会返回function 2、创建函数对象 : 方式1: 开发中很少使用构造函数创建函数对象 可以把封装的代码以字符串的形式传递给构造函数 var fun = new function ("console.log(‘Hello‘)"); 封装的函数不会立即执行,调用的时候才按照顺序执行 调用函数: fun(); 方式2: 使用函数声明创建一个函数 - 函数声明 function 函数名([形参1,形参2...形参N]){ 语句... } function f() { console.log("这是一个函数声明创建函数f()"); } 调用函数: f(); 方式3: 使用函数表达式创建函数 var 函数名 = function([形参1,形参2...形参N]){ 语句... }; var f = function () { console.log("使用匿名函数创建函数赋值给f变量"); }; //本质上此句是一个赋值语句 3、函数形参 function sum(a, b) { // 实参可以是任何类型,也可以是对象() return (a+b); return ; //返回undefined } 调用函数时,不检查实参的类型和实参的数量 sum(‘helll‘,12) var res = sum(2); //2+ undefined = NaN 4、对象做函数实际参数 /* * 创建一个函数,可以在控制台中输出一个人的信息 * 可以输出人的 name age gender address * * 实参可以是任意的数据类型,也可以是一个对象 * 当我们的参数过多时,可以将参数封装到一个对象中,然后通过对象传递 */ function sayHello(o){ //console.log("o = "+o); console.log("我是"+o.name+",今年我"+o.age+"岁了,"+"我是一个"+o.gender+"人"+",我住在"+o.address); } //sayHello("猪八戒",28,"高老庄","男"); //创建一个对象 var obj = { name:"孙悟空", age:18, address:"花果山", gender:"男" }; //sayHello(obj); /* * 实参可以是一个对象,也可以是一个函数 */ function fun(a){ console.log("a = "+a); //a(obj); } //fun(sayHello); 等价于 sayHello(obj); //fun(function(){alert("hello")}); 函数对象做函数参数 * sayHello() * - 调用函数 * - 相当于使用的函数的返回值 * * sayHello 函数名 * - 函数对象 * - 相当于直接使用函数对象 </script> </head> <body> </body> </html>
原文:https://www.cnblogs.com/luoxuw/p/11440492.html