<!DOCTYPE html>
<html lang="zh">
<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>
<script>
// 创建构造函数
function Person(name, age){
this.name = name;
this.age = age;
}
// 调用构造函数
var per1 = new Person("孙悟空", 18);
var per2 = new Person("猪八戒", 27);
var per3 = new Person("红孩儿", 8);
var per4 = new Person("二郎神", 38);
var per5 = new Person("哮天犬", 18);
// 把这些对象,都打包存起来
var arr = [per1, per2, per3, per4, per5];
// 找出年龄大于15岁的对象并打包,返回一个整体
function over_15(arr){
// 创建一个新的数组对象,来保存返回值
var over = [];
for(var index = 0; index < arr.length; index++){
if (arr[index].age > 15){
over.push(arr[index]);
}
}
return over;
}
// 接收符合要求的对象
// var receive_over =[];
var receive_over;
receive_over = over_15(arr);
console.log(receive_over);
console.log(typeof receive_over);
</script>
</head>
<body>
</body>
</html>
1. 掌握数组对象的创建方式
2. 由于数组的值可以是任何的数据类型,我们也可以用数组来保存一个对象(这个对象可以是通过Object来创建的,也可以是构造函数来创建的(为了修改类名,以及向原型对象中添加属性或者是方法,以便于该类对象的实例进行调用)),数组可以将一组数据进行打包存储
下图中,展示了,Javascript和Java一个很大的不同是,这里可以利用一个普通的变量receive_over来接受一个对象变量
数组的forEach方法,如果一个对象,不是数组类型的对象的话,是不能调用该方法的,但是该方法在IE8里面不支持
上面的per1不是数组对象,所有不能调用数组对象的forEach方法
<!DOCTYPE html>
<html lang="zh">
<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>
<script>
// 数组的forEach方法
// 创建构造函数
function Person(name, age) {
this.name = name;
this.age = age;
}
// 调用构造函数
var per1 = new Person("孙悟空", 18);
// per1.forEach(function(){
// console.log("加油!!!");
// });
var arr = ["孙悟空", 18];
arr.forEach(function(value, index, obj){
console.log("value =" + value);
console.log("index =" + index);
console.log("obj =" + obj);
console.log(obj == arr);
});
</script>
</head>
<body>
</body>
</html>
明确调用函数(传的是一个函数的返回值)和调用函数对象(传的是一个对象)的区别
forEach调用的是一个函数对象,而不是调用的一个函数