。。。。。

原型指向可以发生改变

实例对象中的原型__proto__指向的是创建这个对象的构造函数中的原型对象prototype

构造函数中的原型对象prototype的指向发生了改变, 实例对象中的原型__proto__指向也会发生改变

构造函数中的原型对象(prototype)和实例对象中的原型对象(__proto__)是相同,
实例对象中的原型对象(__proto__)指向 构造函数中的原型对象(prototype)
console.log(Person.prototype == obj.__proto__);

原型链:是一个关系,实例对象和原型对象之间的关系,关系是通过实例对象的__proto__联系的

实例对象中 __proto__ 指向 原型对象中 prototype

原型对象是一个对象 ,有一个 __proto__ 指向 Object这个构造函数中的原型对象prototype,最终指向null

如果原型的指向发生了改变,但是又需要用原型对象中的方法和属性, 可以将指向发生改变放在最前面,发生改变后,再来添加属性和方法,这样就可以使用了。

 面向对象的三大特征:封装,继承,多态
封装:将一个值封装一个变量,将一段代码封装在一个函数中,将多个函数封装在对象中,将多个对象封装在一个js文件中
继承:父级类和子级类之间的继承-----js中没有类,有构造函数,也可以用继承

多态:一个对象有不同的行为,或者同一个行为有不同的对象,产生不同的结果,如果要实现多态,就要先有继承,js可以模拟多态,但是不会去使用,也不会去模拟.

 继承:
   1.通过修改原型对象的指向实现继承
      缺陷:所有的属性都是一样的
    2. 借用构造函数实现继承
      要继承的构造函数中:构造函数名字.call(当前对象,属性1,属性2,。。)
      缺陷:虽然可以实现属性的不同,但是方法不能继承
   3. 组合继承:原型对象 + 借用构造函数
      既可以实现属性不重复问题,又可以继承方法

尽量使用函数的表达式,因为使用函数的声明在IE8中会有问题

 普通函数中this的指向-----window
 对象.方法中的this的指向-----当前实例对象
 定时器方法中的this的指向-----window
 构造函数中的this的指向-----当前的实例对象
 原型对象中的this的指向-----当前实例对象
 事件中的this的指向------当前事件源


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值