【JavaScript笔记】JavaScript基础_函数(5)
2022-05-07 本文已影响0人
李明燮
函数也是对象,封装了一些功能(代码),可以调用。
<!DOCType html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
console.log("--------------------function 调用方式--------------------");
//写new就代表调用构造函数constructor
var fun = new Function();
console.log("fun type:", typeof fun); //fun type: function
fun = new Function("console.log('hello world')");
console.log(fun); /* ƒ anonymous(
) {
console.log('hello world')
} */
fun(); //hello world
//fun(); 执行函数
//fun: 函数对象
//因为函数也是对象,所以可以给一个属性值
fun.age = 18;
console.log(fun.age); //18
// 声明匿名函数
var fun1 = function () {
console.log('hello world');
}
//执行匿名函数
fun1(); //hello world
function fun2() {
console.log('111111');
console.log('222222');
}
fun2(); //111111 222222
function fun3(a, b) {
console.log(a + b);
}
fun3(1, 2); //3
fun3(); //NaN
fun3(1); //NaN
fun3(123, "Hello"); //123Hello
fun3(1, 2, 3, "Hello"); //3
//给函数加 return
function fun4(a, b) {
var c = a + b;
return c;
}
//需要用便来接返回值
var result = fun4(1, 2);
console.log("result:", result); //result: 3
var obj = { age: 18, name: "小明" };
//给函数传对象参数
function fun5(a) {
console.log("年龄:", a.age, "姓名:", a.name);
}
fun5(obj); //年龄: 18 姓名: 小明
//给函数传函数参数
function fun6(a) {
a(obj);
}
fun6(fun5); //年龄: 18 姓名: 小明
//函数的返回对象
function fun7() {
return { name: "小明", age: 18 };
}
var obj1 = fun7();
console.log(obj1.name); // 小明
//函数内的函数
function fun8() {
function fun9() {
console.log("func9");
}
return fun9;
}
var a = fun8();
a(); //func9
fun8()(); //func9
//匿名函数的另一种用法
(function() {
console.log("我是匿名函数");
})(); // 我是匿名函数
//匿名函数的另一种用法
(function(a, b) {
console.log("a:", a);
console.log("b:", b);
})(12, 13); //a: 12 b: 13
var obj = {name:"张三",age:18};
obj.sayName = function() {
console.log("我的名字是:", this.name);
}
//掉用对象方法(method) // fun() 前面没有指定对象的叫函数
obj.sayName(); //我的名字是: 张三
//console.log() document.write() 都是对象方法
//可以用这种方式查看属性
for(var n in obj){
console.log(n);
} // name age sayName
//可以用这种方式查看属性值
for(var n in obj){
console.log(obj[n]);
} // 张三 18 ƒ () { console.log("我的名字是:", this.name);}
</script>
</head>
<body>
</body>
</html>
欢迎大家的意见和交流
email: li_mingxie@163.com