对象字面量,函数生成
- 1.对象生成
- 1.1new对象
- 1.2利用对象字面量(有点类似于java的构造方法)
- 2.函数生成
- 2.1构造函数生成一个函数(可以不看,不推荐用)
- 2.2使用函数声明建一个函数
- 2.3用函数表达式创建一个函数
- 3.函数被调用的时候不会检查实参的数量和类型
- 4.小案例(判断奇偶),用最简单的代码写(记得用函数)
- 5.函数加括号不加括号区别(※※※※※)
- 6.函数套娃
1.对象生成
1.1new对象
var obj = new Object();
obj.name = "林青霞";
obj.age = 18;
obj.hobby = "男人";
console.log(obj);
1.2利用对象字面量(有点类似于java的构造方法)
<script type="text/javascript">
//使用对象字面量,可以在创建对象时,
//直接指定对象中的属性语法。{属性名∶屈性值,属性名:属性值....}
var obj = {name:"林青霞",age:23,hobby:"男"};
console.log(obj);
//对象字面量的属性名可以加引号也可以不加,
//建议不加,如果要使用一些特殊的名字,则必须加引号
</script>
2.函数生成
2.1构造函数生成一个函数(可以不看,不推荐用)
<script type="text/javascript">
//函数
//使用构造函数生成一个函数
//可以将要封装的代码以字符串形式传递给构造函数
var fun = new Function("console.log("这是一个函数")");
fun();
</script>
2.2使用函数声明建一个函数
<script type="text/javascript">
//使用函数声明建一个函数
function 函数名([形参1,形参2.....]){
}
</script>
2.3用函数表达式创建一个函数
<script type="text/javascript">
//用函数表达式创建一个函数
//实际上是创建了一个匿名函数赋值给一个变量
var fun2 = function(){
console.log("***");
}; //最好加一个分号
fun2();
</script>
3.函数被调用的时候不会检查实参的数量和类型
//调用函数的时候不会检查实参的类型和数量
//所以要注意是否有可能接受到非法的参数
//多余实参不会被赋值
//如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined
<script type="text/javascript">
//调用函数的时候不会检查实参的类型和数量
//所以要注意是否有可能接受到非法的参数
//多余实参不会被赋值
//如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined
function fu(a, b){
console.log(a+b);
}
fu(23, 56);
</script>
4.小案例(判断奇偶),用最简单的代码写(记得用函数)
<script type="text/javascript">
//判断奇偶
function isou(num){
return num%2==0;
}
var result = isou(4);
console.log(result);
</script>
5.函数加括号不加括号区别(※※※※※)
- mianji():调用函数 ----->相当于使用的函数的返回值
- mianji: 函数对象 ----->-相当于直接使用函数对象
- 见案例:
<script type="text/javascript">
function mianji(r){
return 3.14*r*r;
}
function fun(a){
console.log("a ="+ a);
}
/*
mianji()
调用函数
-相当于使用的函数的返回值
mianji
-函数对象
-相当于直接使用函数对象
*/
fun(mianji(10)); //相当于使用函数的返回值
fun(mianji); //传递对象本身
</script>
6.函数套娃
js区别于其他语言,可以在函数里面声明另一个函数
<script type="text/javascript">
//函数可以套娃,可以在一个函数里面声明另一个函数。
function fun3(){
function fun4(){
alert("我是函数4");
}
return fun4; //不加括号,否则就是返回函数4的返回值,而不是函数4的对象。
}
/*var es = fun3();
es();*/
//或者下面这样
fun3()();
</script>