原型prototype、原型链__proto__、构造器constructor

创建函数时,会有原型prototype,有原型链__proto__,有constructor.(构造函数除外,没有原型) 。

prototype原型:是对象的一个属性(也是对象),使你有能力向对象添加属性和方法。

__proto__原型链:指向创建它的函数对象的原型对象prototype。

constructor构造器:返回创建此对象的函数。

创建一个函数

这个函数的constructor返回的是js底层的函数Function,它的原型链__proto__是function。__proto__是创建函数对象的原型,constructor是创建函数的对想,所以constructor.prototype===__proto__.

构造函数则跟上面的不同。构造函数,没有prototype,有__proto__,有constructor

pro的原型链__proto__继承的是Pro的原型prototype

constructor属性是返回创建此对象的函数,也就是function Pro()

constructor的原型和__proto__是相同的。

实例化pro过程有三步:1.var pro = new Object();

           2.pro.__proto__=Pro.prototype;   pro.constructor = Pro.prototype.constructor

           3.将pro作为this调用的构造函数,去设置属性和方法。

时间: 2024-08-27 19:28:57

原型prototype、原型链__proto__、构造器constructor的相关文章

JS原型,Prototype,原型

对于javascript这样一种前端语言,个人觉得,要真正的理解其oop, 就必须要彻底搞清楚javascript的对象,原型链,作用域,闭包,以及this所引用的对象等概念.这些对弄明白了,应该就可以比较自信的驾驭这种语言了. 大家都知道,javascript中的继承不是使用的类继承的机制,而是使用的另一种方式 – 原型继承.在原型继承方式中,本质上是javascript语言加入原型链这种机制,从而实现了面向对象的重要特性之一 – 继承.在这篇博文中,基于个人的理解,来说说javascript

原型链继承中的prototype、__proto__和constructor的关系

前不久写了有关原型链中prototype.__proto__和constructor的关系的理解,这篇文章说说在原型链继承中的prototype.__proto__和constructor的关系. 通过以下最简单的原型链继承(省略了属性和方法)来讨论: 1 function SuperType(){}; 2 function SubType(){}; //继承了SuperType 3 SubType.protoType = new SuperType(); //创建了一个SubType的实例 4

js高级构造函数,实例对象和原型对象——prototype、__proto__和constructor构造器

一.前言 了解JavaScript面向对象,需要先了解三个名词: 构造函数,实例对象和原型对象. 注意:JavaScript中没有类(class)的概念,取而代之的是构造函数,两者类似却又有很大的差别. 先上代码,最常用的: function Person(name, age) { this.name = name; this.age = age; this.eat= function() { alert('吃西红柿') } } var person1 = new Person('小米', 28

Js中Prototype、__proto__、Constructor、Object、Function关系介绍 ,JS原型

此文来自:http://www.blogjava.net/heavensay/archive/2013/10/20/405440.html Js中Prototype.__proto__.Constructor.Object.Function关系介绍 一    Prototype.__proto__与Object.Function关系介绍        Function.Object:Js自带的函数对象. prototype,每一个函数对象都有一个显示的prototype属性,它代表了对象的原型(

javascript的oop——>>> [__proto__ 与 prototype/原型链/原型属性与原型方法/for-in循环]

  前  言  OOP  javascript的oop中的__proto__  与  prototype/原型链/原型属性与原型方法/for-in循环 1  __proto__  与  prototype/原型链   1.prototype(函数的原型):函数才有prototype.prototype是一个对象,指向了当前构造函数的引用地址呢.                       2.__proto__(对象的原型对象):所有对象都要__proto__属性.当用构造函数实例化(new)一

原型和原型对象(__proto__和prototype)转

看了之后我总算对原型继承有了更深刻的理解,做爱分享的姑娘,原文链接:理解Javascript 原型 我(个人)不喜欢的,就是讲原型时上来就拿类做比较的,所以我不会这样讲.不过我的确讲过构造器函数,在这方面和类多多少少有共通之处.我的建议是:忘掉类.有很多观点认为“类”学的泛滥是面向对象的过度发展,是一种悲哀,以至于有太多的开发者几乎把面向对象和类划上了等号.在学习原型之前,我请你先记住并品味这句话: 面向对象设计的精髓在于“抽象”二字,类是实现实体抽象的一种手段,但不是唯一一种. prototy

js原型和原型链理解 constructor 构造函数

一.对象:普通对象   函数对象 二.构造函数特点:1.需要new实例化,内部使用this对象指向即将要生成的实例对象  2.首字母大写,用于区分普通函数 function Person(name){ this.name=name } var person1=new Person('xiaohong') var person2=new Person('lili') person1.constructor=Person   constructor指向构造函数,Person的内置属性 Person.

[js高手之路]一步步图解javascript的原型(prototype)对象,原型链

我们接着上文继续,我们通过原型方式,解决了多个实例的方法共享问题,接下来,我们就来搞清楚原型(prototype),原型链的来龙去脉. function CreateObj(uName) {             this.userName = uName;         }         CreateObj.prototype.showUserName = function(){             return this.userName;         }         va

你不知道的JavaScript--Item15 prototype原型和原型链详解

用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱. 每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和