原型的继承

回顾 原型

prototype:函数的属性,属性值:默认是一个对象(普通的Object对象)
proto: 所有对象的属性,默认情况下指向构造函数的原型

什么情况下属性写在构造函数中,什么属性写在原型中?

function F(){
    this.name = name;
    this.age = age;

}
// 方法写在原型中
F.prototype.say = function(){

}

原型链

  1. Object.prototype.proto === null
  2. Function.prototype === Function.proto
  3. prototype.proto === Object.prototype

原型的应用

  1. Object.getPrototypeOf(对象) 获取对象的隐式原型

  2. 对象 instanceof 构造函数 判断对象是否是这个函数构造出来的

  3. Object.prototype.isPrototypeOf(对象) 判断Object.prototype是否在指定对象的原型链上

  4. Object.Create(对象) 创建一个新对象,将新对象的隐式原型指向对象

  5. Object.hasOwnProperty(属性) 判断属性是否是对象自身的属性

var obj = {
    x:1,
    y:2
}
for(var key in obj){
    if(obj.hasOwnProperty(key)){
        console.log(key);
    }
}

创建一个对象的方法

// 1.字面量
var obj ={}
// 2.new Object()
var obj = new Object()
// 3.使用构造函数
// 4.Object.create()

对原型的操作

  1. 改动对象的原型
  2. 直接函数的原型重新赋值

this改变指向

Function的实例方法:函数去调用

  1. apply() 调用函数,同时指定函数中的this指向,以数组的形式传递参数
  2. call() 调用函数,同时指定函数中的this指向,以单个形式传递参数(一一列举)
  3. bind() 得到一个新函数,该函数中的this指向制定的值

通常,可以用call、apply来解决伪数组转化为真数组

NodeList
arguments

继承

  1. 最原始的继承
  2. 原型继承模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值