原型

1.原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先

    通过该构造函数产生的对象,可以继承该原型的属性和方法原型也是对象

2.利用原型的特点和概念可以提取共有属性

3。对象如何查看原型:obj.__protp__

4.查看对象的构造函数:obj.constructor

 

function Person(){
  this.name='zf'
}
function Car () {
  this.name='zz'
}
Car.prototype={
  constructor:Person
}
var car=new Car();

Person.prototype//原型

Person.prototype={}//祖先

 

function Person(){
  // this={
      // __protp__:Person.prototype
  // }
  this.name='zf'
}
  var son=new Person();
  son.age//son会沿着原型链向上找age属性,__protp__指向原型

原型的__protp__指向object.prototype(是原型链的终端{绝大多数对象最终都会继承自object.prototype  由于Object.create()这个的原因}),

 

var obj=Object.create(原型)

 

var obj={}

obj.toString()==>"[object object]"

可以在原型链上编程,比如重写一个toString方法,因为,toString方法在object.prototype上,可以在构造函数的原型上写一个toString方法

Object.prototype.toString()
Number.prototype.toString()//系统自己的
String.prototype.toString()//系统自己的
Boolean.prototype.toString()//系统自己的
Array.prototype.toString()//系统自己的

123.toString()不能直接这样使用,要赋值给变量

 

document.write()隐士的调用了toString方法,所有document。write打印对象时,会是[object object]

 

 

.call()/.applay()

两个可以改变this指向,区别是传参不同,appay传的是数组

 

posted @ 2020-07-25 16:10  颿華正茂  阅读(127)  评论(0)    收藏  举报