javascript原型链及继承的理解

javascript:void(null)# 原型链及继承的理解

定义函数
function A(name) {
    // 构造内容(构造函数)
    this.name = name;
    
    /*
    // 也支持定义方法。但为了性能,不建议在构造里定义方法
    this.fn = function(parmas){
        // your code
    }
    */
}
// 原型链
A.prototype.changeName = function(name) {
    this.name = name;
}
// 静态属性
A.staticPF = 'static12345';
继承
继承构造函数
function B(name) {
    // B 继承 A 的构造函数  也可用apply
    A.call(this, name);
}
// console.log(B)

var b = new B('ccc');
console.log(b.name); // => ccc
继承静态属性
// B 继承 A 的静态属性,查找流程如下
// B.staticPF = >B.__proto__.staticPF => A.staticPF;
B.__proto__ = A;
console.log(B.staticPF); // => static12345
继承原型链
var b = new B('ccc');
// B 继承 A 的原型链, 3种方式,推荐第3种
// B.prototype = A.prototype; // 需要前置在b对象实例化前
// b.__proto__ = A.prototype;
// B.prototype.__proto__ = A.prototype;
B.prototype.__proto__ = A.prototype;

b.changeName('ddd') // b实例最终继续了A的changeName方法
console.log(b.name); // => ddd
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 理解 javascript 的原型链及继承 以上所有的运行结果都是 true; 三种构造对象的方法: 通过对象字面...
    你期待的花开阅读 1,656评论 0 3
  • 原型链是一种机制,指的是 JavaScript 每个对象都有一个内置的 __proto__ 属性指向创建它的构造函...
    劼哥stone阅读 4,547评论 15 80
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,819评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,309评论 19 139
  • 简单来说,想要甩掉腹部赘肉,你需要做有氧运动、全身运动和特定部位运动。要知道,局部减肥是不太可能的,但局部塑形却是...
    仙贝君阅读 2,393评论 6 62

友情链接更多精彩内容