1、定义:原型是函数对象才拥有的属性,它定义了构造函数制造出的对象的公共祖先,通过该构造函数产生的对象可以继承该原型的属性和方法。原型也是对象
2、利用原型特点和概念,可以提取共有属性和方法
3、对象如何查看原型,隐私属性 __proto__
4、对象如何查看对象的构造函数 constructor
5、var obj = Object.create(原型)
全部对象最终都会继承自Object.prototype是错的,object.create(null)就没有原型
// Person.prototype --原型
// Person.prototype = { } --祖先
实例1:
Person.prototype.lastName = 'aaaa';
function Person(age){
// var this = {
// __proto__ : Person.prototype
// }
this.age= age;
}
var person1 = new Person(18)
person1.lastName // aaaa
person1.lastName = 'bbbb' // 不会修改原型上的lastName属性,会在person1对象上新增lastName属性
实例2:
Person.prototype.name = 'aaaa'
function Person (){ }
var person1 = new Person( )
Person.prototype.name = 'bbbb'
person1.name // bbbb
实例3:
Person.prototype.name = 'aaa'
function Person( ){ }
var person2 = new Person( )
Person.prototype = {name: 'bbb'}
person2.name // aaa
实例4:和实例1做对比
Person.prototype.userInfo ={age:18}
function Person( ) { }
var person3 = new Person( )
person3.userInfo.age = 20
person3.userInfo.age // 20
6、toString方法
var num = 123;
num.toString( ) ---> new Number(num).toString( )
Number.prototype上自带toString方法