函数
方法一:构造函数
var fun = new Function();
可以将要封装的代码以字符串的形式传递给构造函数。函数中的代码,会在函数被调用时执行。
函数调用语法:函数对象();
var fun = new Function("console.log('Hello')");
fun();
但是我们在开发中很少使用构造函数开发函数。
方法二:函数声明
语法:
function 函数名([形参1, 形参2...]){
语句
}
function fun2(){
console.log("这是我的函数")
}
fun2();
方法三:函数表达式
var 函数名 = function([形参1,形参2,...]){
语句
};
相当于将一个匿名函数赋值给一个变量。
形参
function sum(a,b){
console.log(a+b);
}
sum(2,3);
调用函数时,解析器不会检查实参的数据类型和实参数量,多余的实参不会被赋值。如果实参数量少于形参的数量,那么没有对应实参的形参将是undefined
函数返回值
使用return
关键字可以返回函数的结果,在函数外部,可以定义一个变量来接收函数的返回值。
function sum(a,b){
var c = a + b;
return c ;
}
var result = sum(2,3);
console.log(result);
return
后面的语句将不会被执行。
如果return
后面不跟任何值,就相当于返回一个undefined
,return
后面可以跟任何类型的数据。
function fun3(){
function fun4(){
alert("我是fun4");
}
return fun4;
}
fun3()();
//等价于
//a = fun3();
//a();
调用函数时将对象当做实参传入,可以在函数内部通过形参调用对象的属性值。
调用函数时,可以将函数当做实参传入。
立即执行函数
(function(){
alert("我是一个匿名对象")
})();
如果想定义匿名函数,则需要在最外层加一层括号,想要立即执行,只需要在后面加上一对括号。
(function(a, b){
console.log("a = "+a);
console.log("b = "+b);
})(123,456);
方法
对象的属性值也可以是函数,如果一个函数作为一个对象的属性值保存,那么我们称这个函数是这个对象的方法,调用函数就说调用对象的方法。
var han = new Object();
han.name = "韩";
han.age = 18;
han.sayName = function(){
console.log(han.name)
}
han.sayName();
比如,我们称sayName
是han
的方法。
比如
document.write("内容");
是调用document
的write
方法
遍历对象中的属性
使用 for …in 语句:
语法:
for (var 变量 in 对象){
}
每次执行时,会将对象中的一个属性的名字赋值给变量。
for ( var n in han){
//console.log("属性名:"+n)
//console.log("属性值:"+han[n]);
console.log(n+ ":"+han[n]);
}
这里在找属性值的时候,不能适用han.n
,因为han
这个对象中没有n
这个属性,所以输出的时候会得到一个undefined
的值,我们可以使用[]
来传入变量。