<!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>
<script>
// 原型对象的应用 扩展内置对象方法
console.log(Array.prototype); //在Array的原型对象身上原来是没有sum方法的
Array.prototype.sum = function () {
// 原型对象身上的this指向实例对象
// 谁调用了this,this就指向谁
var sum = 0;
for (var i = 0; i < this.length; i++) {
sum += this[i];
}
return sum;
}
// 错误的写法
// 数组和字符串内置对象不能给原型对象覆盖操作,Array.prototype={} ,z=只能是Array.prototype.xxx=function(){}的方式
// Array.prototype = {
// sum: function () {
// var sum = 0;
// for (var i = 0; i < this.length; i++) {
// sum += this[i];
// }
// return sum;
// }
// }
var arr = [1, 2, 3];
console.log(arr.sum()); //6
console.log(Array.prototype); //现在Array的原型对象身上就有了我们自定义的sum方法
var arr1 = new Array(11, 22, 33);
console.log(arr1.sum()); //66
</script>
</body>
</html>