原型 原型链 继承

// 原型
//      问:为什么引入prototype属性
//      答:使N多个同一个构造函数生成的实例对象共享同一个属性,达到共享属性和方法
        // es6之前js没有类的概念,所以有构造函数
        // 但是es6引进了class类的概念,new出来的实例对象对应的构造函数写法有所改变
// 原型链
// 概念:一个对象有它自己的原型对象_proto_,这个原型对象还有它自己的原型对象,当查找对象属性时,
//      先去对象里去找,对象里没有再去它的原型对象里去找,以此类推,形成了原型链
// _proto_和prototype
function a11(){}
a11.prototype.name = "jiaojiao"
var func = new a11()
console.log(func);
//打印: a11 {}
//      __proto__:
//          name: "jiaojiao"
//          constructor: ƒ a()
//          __proto__: Object
//_proto_指向Function.prototype,既 func._proto_ = a11.prototype
// new生成的对象实例func会含有一个constructor属性 指向他们的构造函数a11()
// console.log(func.constructor == a11); //true

// 构造函数的继承、非构造函数的继承
// 一. 第一种方法也是最简单的方法,使用call或apply方法,将父对象的构造函数绑定在子对象上,即在子对象构造函数中加一行:
//      call() ,apply() 他们可以用来调用所有者对象作为参数的方法。
//      区别call()分别接受参数, applay接受数组形式的参数
//      var person = {
//          first:function(){
//              return this.name
//          }
//      }
//      var person1 = {
//          name: '苗杉杉'
//      }
//      console.log(person.first.call(person1))
// 二、 prototype模式
// 三、 直接继承prototype
// 四、 利用空对象作为中介
// 五、 拷贝继承
var promise = new Promise(function(resolve, reject) {
    console.log(resolve);
    console.log(reject);
    // 异步处理
    // 处理结束后、调用resolve 或 reject
});

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值