静态方法和实例方法
静态方法直接添加给类,通过类名调用
实例方法添加给类的原型,通过实例(对象)调用
<script>
// 1.定义一个类
function AClass() {
}
// 2.给这个类添加一个静态方法
// 直接添加给类的就是静态方法
AClass.staticMethod = function () {
alert("staticMethod");
}
// 静态方法通过类名调用
AClass.staticMethod();
// 3.给这个类添加一个实例方法
AClass.prototype.instanceMethod = function () {
alert("instanceMethod");
}
// 实例方法通过类的实例调用
// 创建一个实例(创建一个对象)
var a = new AClass();
// 通过实例调用实例方法
a.instanceMethod();
</script>
静态方法之each方法
forEach是js中的方法,用来遍历数组,不能遍历伪数组
语法:数组名.forEach(function(value,index){
//第一个参数value是值,第二个参数index是索引
})
$.each() 是jQuery的方法,用来遍历jQuery对象(伪数组)
语法:$.each( jQuery对象名,function(index, value){
//第一个参数indexi是索引,第二个参数value是值
} )
<script>
var arr1 = [1,2,3,4,5] //真数组 用forEach遍历
var arr2 = {length:5,0:1,1:2,2:3,3:4,4:5} //伪数组 用each遍历
arr1.forEach(function(value,index){
console.log(index+":"+value)
})
$.each(arr2,function(index,value){
console.log(index+":"+value)
})
</script>
JS中forEach和map的异同
同:
1.都只能遍历数组
2.都通过数组名.map或者数组名.forEach调用。
3.都能接收三个参数(元素值,索引下标,数组名)
异:
forEach没有返回值
map有返回值,可以return。而且不会改变原数组,会返回一个新的数组,数组中的元素为原始数组调用函数处理后的值(原数组进行处理之后对应的一个新的数组。)
<script>
var arr = [1, 2, 3, 4, 5]
var obj = {
length: 5,
0: 1,
1: 2,
2: 3,
3: 4,
4: 5
}
var res = arr.forEach(function(value, index) {
return value
})
console.log(res) //undefined
var res2 = arr.map(function(index, value) {
return value * 2
})
console.log(res2) // (5) [0, 2, 4, 6, 8]
</script>
jQuery中each和map的异同
同:
1.都可以遍历数组和伪数组
2.通过 $ . map(对象名,function(){})或者 $ .each ( 对象名,function ( ) {} ) 调用
异:
- each没有返回值,map有返回值
- each中回调函数的顺序:索引值在前,属性值在后 ;map中回调函数的顺序:属性值在前,索引值在后。
<script>
/*
jQuery中的each静态方法和map静态方法的区别:
each静态方法默认的返回值就是, 遍历谁就返回谁
map静态方法默认的返回值是一个空数组
each静态方法不支持在回调函数中对遍历的数组进行处理
map静态方法可以在回调函数中通过return对遍历的数组进行处理, 然后生成一个新的数组返回
*/
var obj = {
length: 5,
0: 1,
1: 2,
2: 3,
3: 4,
4: 5
}
var res = $.map(obj, function(value, index) {
return value * value
})
console.log('map的返回值' + res) // map的返回值1,4,9,16,25
var res2 = $.each(obj, function(index, value) {
//return value;
});
console.log(res2) //{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, length: 5}
</script>
forEach,each和map方法总结:
map方法:
不管在js还是在jQuery中,都有返回值,都默认返回一个空数组,可以在回调函数中对传入的参数进行处理,能返回处理后的新数组,而且不会改变原数组(伪数组)
each和forEach:
forEach没有返回值,each有返回值,而且只能返回原对象。
参数顺序:
只有each方法是index在前,value在后。其他三个方法都是value在前,index在后。