prototype/constructor/__proto__之constructor。

1.constructor的字面意思就是构造。它是对象的一个属性,它对应的值是该对象的“构造者”

 1 //一、构造函数实例化的对象的constructor
 2 function Cmf(n,m){
 3   this.n=n;
 4   this.m=m;
 5   this.mn=function(){
 6   return this.n+‘|‘+this.m
 7   }
 8 }
 9 var cmf=new Cmf(‘c‘,"q")
10 console.log(cmf.mn()) // c|q
11 console.log(cmf.constructor) //  Cmf(n, m)
12 //这里可以看出Cmf()实例化的cmf()对象,这个对象的constructor是它的固有属性。
13
14 //二、基本数据类型的constructor
15 var yi=154
16 console.log(yi.constructor)// Number()
17 var li="qdz"
18 console.log(li.constructor)//  String()

2.1原型的constructor

 1 function Cmf(n,m){
 2   this.n=n;
 3   this.m=m;
 4   this.mn=function(){
 5   return this.n+‘|‘+this.m
 6   }
 7 }
 8
 9 Cmf.prototype.jn=function(){
10   return this.m+"!"+this.n
11 }
12 var cmf=new Cmf(‘c‘,"q")
13 console.log(cmf.jn()) //q!c
14 console.log(Cmf.prototype) //  Cmf { jn=function()}
15 console.log(typeof Cmf.prototype) // object
16 console.log(Cmf.prototype.constructor) // Cmf(n, m)
17 //上面看出构造函数原型的constructor指向了该构造函数。怎么理解呢,构造函数的原型是个Obj,这个Obj是由什么构成的呢?是它的构造者 构造函数。

2.2 基本数据类型的constructor

  String.prototype.cf=function(n){   //给String.prototype这个obj添加方法cf,字符串乘法
            return    new Array(n+1).join(this)
    }
var d="d"

console.log(d.cf(5)) //ddddd
console.log(String.prototype) // String { cf=function()}
console.log(String.prototype.constructor) // String()
//类似于构造函数
时间: 2024-10-09 20:12:36

prototype/constructor/__proto__之constructor。的相关文章

Js中Prototype、__proto__、Constructor、Object、Function关系介绍

Js中Prototype.__proto__.Constructor.Object.Function关系介绍 一    Prototype.__proto__与Object.Function关系介绍        Function.Object:Js自带的函数对象. prototype,每一个函数对象都有一个显示的prototype属性,它代表了对象的原型(Function.prototype函数对象是个例外,没有prototype属性). __proto__:每个对象都有一个名为__proto

原型链继承中的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、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中的prototype与__proto__、constructor

前几天当我同时向往说起node.js的时候,我逐渐发现原来JS是个多么丰富语言——我原来一直都在井底(初学者的悲哀).当我想认认真真学习JavaScript的时候,我发现prototype与__proto__.constructor这几个家伙老是让我很有挫败感(学一门语言属性都搞不懂,还学个P).但我是一个不轻易服输的人,也不是不会妥协,就是有这种习惯,我就要去做就要去弄懂哪怕挫折感更多.于是,我在网上搜大神们的对这几个让我烦恼的东西的阐述与解释.最后的结果是--还是搞不懂.“什么对象原型,什么

浅谈prototype与__proto__、constructor三者之间的关系

1.关于prototype? a.每个函数中都有一个prototype属性,这个属性叫做原型. b.prototype指向的这个对象就叫原型对象. c.prototype表示了一个类的属性的集合. 2.原型对象中包含有constructor和__proto__. 3.当通过new将该函数实例化后,其内部方法也可用实例对象调用. 如:var ABC=new wxy(); ABC.case(); 当未被实例化时也可直接声明其内部方法调用. 如:wxy.case(); 4.我们可以通过prototyp

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

看了JS的prototype和__proto__这篇文章,才感觉很清晰了,对于原型这块,以前经常把这些属性弄不清楚, 明白了之后保存下整理下: prototype: 是函数的一个属性(每个函数都有一个prototype属性) __proto__: 是一个对象拥有的内置属性 (prototype是函数的内置属性,__proto__是对象的内置属性) 二.new 的过程 var t= function(){}; var p = new t(); new的过程拆分成以下三步:(1) var p={};

201708291826_《Javascript之prototype、__proto__、constructor KO!!!!!!》

/* *------------------------------------------------------------------------------- * [email protected] 2017-8-29 19:03 *------------------------------------------------------------------------------- * 1. prototype, constructor都是属性; * 2. 不同点:prototy

js中prototype,__proto__,constructor之间的关系

首先,我们需要了解三点: 1. 只要创建一个任意新函数,就会根据一个prototype属性,该属性指向函数的原型对象: 2. 每一个原型对象都会自动获得一个constructor属性,该属性只想prototype所在函数的指针: 3. 当调用构造函数创建实例时,该实例内部将包含一个指向构造函数原型对象的指针,在大部分浏览器中用__proto__标识: 从上面这三点我们可以了解到: 正常情况下:prototype属性 -> 原型对象 原型对象的constructor属性 -> 构造函数(即拥有p

关于prototype和__proto__ 以及 constructor的文字总结

//函数的construct 指向了 function Function(){} undefined //实例化的对象 constructor 指向 函数本身 undefined //每个函数都有prototype属性 undefined //实例化的对象都有__proto__ 属性 undefined //其中实例化中__proto__ 和 函数中prototype的指向是 同一个原型对象 默认指向是一致的 当然也是可以改变的