1.
1.obj.__proto__找到它的原型对象
2.数组上的方法都是挂载在原型上(Array.prototype)的
var arr=[1,2,3];
console.log(Array.prototype)//数组的所有方法
console.log(arr.__proto__==Array.prototype)//true
2.原型的构造
var arr=new Array(1,2,3);
Array.prototype.sum=function(params){
if(Array.isArray(params)){
return arr.reduce((a,b)=>a+b);
}
}
console.log(arr.sum(arr));
var obj=[5,8,9,7];
Array.prototype.http=function(){
console.log("http")
}
arr.http();
3.原型对象
作用:将对象通用的方法挂载在原型上
function Student(name,age){
this.name=name;
this.age=age;
}
Student.prototype.sayName=function(){
console.log(this.name)//meng
}
var s=new Student("meng",18);
s.sayName()
console.log(s)//Student {name: "meng", age: 18}
console.log(Student.prototype)//sayName: ƒ ()
constructor: ƒ Student(name,age)
__proto__: Object
function Teacher(name,age){
this.name=name;
this.age=age;
}
Teacher.prototype.sayAge=function(){
console.log(this.age)
}
var s=new Teacher("tom",35)
console.log(s)