<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script>
//创建一个函数对象
//将要封装的代码以字符串的形式传递给构造函数
var fun = new Function(
console.log("你了不起,你清高")
);
fun();
/*
使用函数声明来创建一个函数,基本不用
语法:function 函数名([形参1,形参2,...形参n]){
语句...
}
*/
function fun2(){
console.log("你了不起,你清高");
}
//调用fun2
fun2();
/*
使用 函数表达式 来创建一个函数
var 函数名 = function([形参1,形参2....形参n]){
语句....
}
*/
//将匿名函数赋值给变量fun3,类似的这种赋值语句最好写分号
//而声明语句并不需要分号
var fun3 = function(){
console.log("匿名函数");
};
fun3();
//立即执行函数
// - 函数定义完成后,立即被调用
//function () {},这样会报错,需要将其变成一个整体
//将函数整体用一个括号括起来,后面再搭一个括号
(function () {
alert("我是一个匿名函数");
})();
//带参数的立即执行函数
(function (a,b) {
console.log("a = "+a);
console.log("b = "+b);
})(123,456);
//对象的属性值可以是任何的数据类型,也可以是一个函数
var obj = {
name:"孙悟空",
age:18
};
obj.sayname = function () {
console.log("我叫"+obj.name);
}
obj.sayname();
/*
函数也可以称为对象的属性,
如果一个函数作为一个对象的属性保存
那么我们称这个函数为这个对象的方法
调用这个函数就说调用对象的方法(method)
但是他只是名称上的区别,没有实质区别
*/
//把方法写在对象里面
var obj2 = {
name:"猪八戒",
age:18,
sayname:function () {
console.log("我叫"+obj2.name);
}
};
obj2.sayname();