JavaScript 原型和原型链

原型

原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象

  • 提取公共属性到原型中
  • 通过后代无法修改、增加、删除原型
  • constructor(系统自带隐藏属性浅粉色),构造器,返回对象的构造函数,可以手动更改
Person.prototype.LastName="ge"
function Person(){
        this.Name="xuerongh"
}
var person=new Person()
console.log("原型属性"+person.LastName);//原型属性ge
console.log("自身属性"+person.Name);//自身属性xuerongh
console.log("构造器"+person.constructor);//构造器function Person(){this.Name="xuerongh"}
  • __proto__指向原型,可以自己修改为别的对象
function Person() {
            //var this = {
            //__proto__: Person.prototype
            //}
}

 原型链 

由__proto__是任何对象有的属性,__proto__指向原型,js中万物皆对象,__proto__形成的链条就是原型链。

  • Object.create(原型)
  • 绝大多数对象最终都会继承自Object.prototype(Object.create(null)不继承)
  • toString():undefined、null不能调用,没有包装类、没有原型无法调用toString()。123.tostring()不可以调用.会当作数学符号优先计算。

javascript精度不准

call/apply

  • 改变this指向
  • call需要把实参按照形参的个数传进去,apply 需要传一个arguments
posted @ 2019-03-16 15:43  110来了  阅读(163)  评论(0编辑  收藏  举报