JavaScript Tips: 原型链 prototype

当Bar.prototype = new Foo();

$(function () {
    var test = new Bar();
    console.log(test);//Bar
    test.method();//method log
    console.log(test.foo);//Hello World
    console.log(test.value);//42
    var footest = new Foo();
    console.log(footest);//Foo
    console.log(footest.foo);//undefined
    console.log(footest.value);//42
});

function Foo(){
    this.value=42;
    }
    Foo.prototype = {
    method:function(){console.log(‘method log‘)}
};
function Bar(){}
Bar.prototype = new Foo();
Bar.prototype.foo = ‘Hello world‘;
Bar.prototype.constructor=Bar;

当Bar.prototype=Foo.prototype;

$(function () {
    var test = new Bar();
    console.log(test);//Bar
    test.method();//method log
    console.log(test.foo);//Hello World
    console.log(test.value);//undefined
    var footest = new Foo();
    console.log(footest);//Foo
    console.log(footest.foo);//Hello World
    console.log(footest.value);//42
});

function Foo(){
    this.value=42;
    }
    Foo.prototype = {
    method:function(){console.log(‘method log‘)}
};
function Bar(){}
Bar.prototype = Foo.prototype;
Bar.prototype.foo = ‘Hello world‘;
Bar.prototype.constructor=Bar;

原理:补充。

时间: 2024-12-30 13:56:43

JavaScript Tips: 原型链 prototype的相关文章

Javascript的原型链图

90%的前端或者js程序员或者老师们对Javascript懂得不比这个多 给手机看的 但是这个图里的所有褐色单向箭头链就是Javascript的原型链(颜色标注对理解js原型链很关键) 这图中的各个__proto__ constructor .prototype 都是内部对象 这样画是为了简洁 举个例子 如果考虑__proto__ 作为内部对象 上图变为 原型链就是 constructor 和 prototype如果作为内部对象 放到相应的位置 图就变大麻团了 保证晕倒什么也记不住 不服请看 这

javascript中原型(prototype)与原型链

javascript是一门动态语言(动态语言Dynamic Programming Language:动态类型语言,意思就是类型的检查是在运行时做的,也就是常说的“弱类型”语言),没有类的概念,有class保留字,但不能用作变量名 原型:Javascript中的每一个对象都有一个内部私有的连接指向另一个对象,这个对象就是原对象的原型 注意:原型是一个对象,其他对象可以通过他实现属性继承 原型链:这个原型对象也有自己的原型,直到对象的原型为null为止(也就是没有原型),这种一级一级的链结构就称为

javascript中原型链与instanceof 原理

instanceof:用来判断实例是否是属于某个对象,这个判断依据是什么呢? 首先,了解一下javascript中的原型继承的基础知识: javascript中的对象都有一个__proto__属性,这个是对象的隐式原型,指向该对象的原型对象.显式的原型对象使用prototype,但是Object.prototype.__proto__=null; 判断某个对象a是否属于某个类A的实例,可以通过搜索原型链. //继承机制 function A(){ } A.prototype.name='licu

深入浅出JavaScript之原型链&继承

Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承. 这部分知识也是JavaScript里的核心重点之一,同时也是一个难点.我把学习笔记整理了一下,方便大家学习,同时自己也加深印象.这部分代码的细节很多,需要反复推敲.那我们就开始吧. 小试身手 原型链

js 原型链 prototype __proto__

1.说明 函数(Function)才有prototype属性,对象(除Object)拥有__proto__. 2.prototype与__proto__区别 示例: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-w

JavaScript函数原型链知识记录

1 构造函数 构造函数是专门用于创建对象的 function Person(myName, myAge) { // let obj = new Object(); // 系统自动添加的 // let this = obj; // 系统自动添加的 this.name = myName; this.age = myAge; this.say = function () { console.log("hello world"); } // return this; // 系统自动添加的 }

javascript之原型(prototype)

今天是第一次写博客,写点在javascript中重要的一个概念----原型(prototype): 原型,顾名思义,就是一切事物的模板. 柏拉图在<理想国>卷10中说:"床不是有三种吗?第一种是自然中本有的,我想无妨说是神创造的,因此没有旁人能制造它:第二是木匠制造的,第三种是画家制造的." 原型就像是自然中本有的. 原型是依赖事物的,现实中现有床,而柏拉图的心中才有一个完美的床.而在javascript中,一旦构造方法,原型就会出现. 1 function Person(

javascript(5)原型链(Evernote)

1.简单的原型链: var song= function(){ this.a =5; this.b=6; } //function song (){ this.a=5; } song.prototype={ add:function(a,b){return a+b+this.a+this.b;}, jian:function(a,b){return b-a;} } var jum= function(){ this.name="WTF"; } jum.prototype=new son

javascript中原型链存在的问题

我们知道使用原型链实现继承是一个goodway:)看个原型链继承的例子. function A () { this.abc = 44; } A.prototype.getAbc = function (){ return this.abc; }; function B() { } B.prototype = new A(); // B通过A的实例完成了继承,形成了原型链(B的原型就是A的实例) var b = new B(); b.getAbc(); 关系如下:b(实例) ->B.prototy