javascript的constructor简单介绍

javascript的constructor简单介绍:
constructor可以返回对象对创建它的构造函数的引用,例如:

var arr=[1,2,3];
console.log(arr.constructor===Array);

以上代码中的输出值是true,这说明数组对象arr的constructor属性指向它的构造函数Array。
可能上面的代码过于简单了,下面再来一点稍稍复杂的代码分析一下:

Object.prototype.webName="蚂蚁部落";
function show(){
  this.name="show函数name";
}

show.prototype={
  constructor:show,
  name:"show的原型对象的name",
  msg:function(){return this.name + this.webName}
}

var prototypeObj=show.prototype;
console.log(prototypeObj.msg());
var obj=new prototypeObj.constructor;
console.log(obj.name);
var showObj=new show();
console.log(showObj.msg());

下面对以上代码进行一下注释:
1.Object.prototype.webName="蚂蚁部落"为Object的原型对象添加一个名为webName的属性,属性值为:蚂蚁部落。
2.function show(){this.name="show函数name"},创建一个函数,当次函数用作构造函数的时候,this就只想通过构造函数创建的对象对象实例,那么此对象实例的name属性值为:show函数name。
3.show.prototype={},将show的原型对象设置为后面的对象直接量。
4.constructor:show,将原型对象的constructor属性指向show函数。
5.name:"show的原型对象的name",属性和属性值,这个很简单就不用数了。
6.msg:function(){return this.name + this.webName},和上面一个道理,只不过是函数而已。
7.var prototypeObj=show.prototype,将show函数的原型对象的引用赋值给变量prototypeObj。
8.console.log(prototypeObj.msg()),因为prototypeObj是show的原型对象的引用,那么将会输出:show的原型对象的name蚂蚁部落,在msg,第一个this是指向原型的对象实例,第二个this也是,不过在原型对象中没有webName属性,那么将会通过原型链找到Object的原型的webName属性。
9.var obj=new prototypeObj.constructor,prototypeObj是指向show的原型对象的,也就是那个对象直接量,此对象直接量的constructor属性是指向show函数的,所以这里就是创建了一个show的对象实例。
10.console.log(obj.name),所以将会输出show函数name。
11.var showObj=new show(),创建一个show的对象实例。
12.console.log(showObj.msg()),msg函数中的this是指向show的对象实例,尽管在原型对象中也有name属性,但是对象本身的优先级要高,第二个this自然也是指向show的对象实例,依然通过原型链找到:蚂蚁部落,所以输出结果为:show函数name蚂蚁部落。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9185

更多内容可以参阅:http://www.softwhy.com/javascript/

时间: 2024-11-10 01:40:09

javascript的constructor简单介绍的相关文章

javascript标签语句简单介绍

javascript标签语句简单介绍:由于对于标签语句的应用并不多,所以可能很多朋友都不是太了解,下面就对它做一下简单介绍,希望能够给需要的朋友带来一定的帮助.标签其实是一个标示符,关于表示符这里就不多介绍了,具体可以参阅javascript标示符的概念是什么一章节, 标签可以与变量重名,它是一个独立的语法元素,它的作用是标识标签化语句(labeled statement).一.标签声明:标签可以声明在任何一个语句前面,或者语句块前,以使得语句或语句块被“标签化(labeled)”,简单的说就是

前端之JavaScript:JS简单介绍

JavaScript(JS)之简单介绍 一.JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript 微软随后模仿在其IE3.0

javascript函数式编程简单介绍

函数式编程在前端已经成为了一个热门的话题,近几年很多的应用程序代码库里大量使用着函数式编程思想.这里对JavaSctipt中的函数式编程做一个简单介绍. 什么是函数式编程 函数式编程是一种编程范式,主要是利用函数把运算过程封装起来,通过组合各种函数来计算结果.函数式编程意味着开发者可以在更短的时间内编写具有更少错误的代码. 函数式编程的简单例子 假设要把一个字符串转换成每个单词首字母大写,可以这样来实现: var string = 'i do like yanggb'; var result =

JavaScript数组的简单介绍

㈠对象分类 ⑴内建对象 ⑵宿主对象 ⑶自定义对象   ㈡数组(Array) ⑴简单介绍 ①数组也是一个对象 ②它和我们普通对象功能类似,也是用来存储一些值的 ③不同的是普通对象是使用字符串作为属性名的, ④而数组是使用数字来作为索引操作元素   ⑵索引(index) ①从0开始的整数就是索引 ②数组的存储性能比普通对象更好,在开发中我们经常使用数组来存储一些数据 ⑶创建数组对象 var arr = new Array(); //使用typeof检查一个数组时,会返回object //consol

javascript HTML DOM 简单介绍

JavaScript HTML DOM通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素.HTML DOM (文档对象模型)当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). 通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML.JavaScript 能够改变页面中的所有 HTML 元素JavaScript 能够改变页面中的所有 HTML 属性JavaScript 能够改变页面中的所有 CSS

javascript的return语句简单介绍

javascript的return语句简单介绍:return语句在js中非常的重要,不仅仅具有返回函数值的功能,还具有一些特殊的用法,有个清晰的把握是非常有必要的.下面就结合实例简单介绍一下return语句的作用.一.用来返回控制和函数结果:通常情况,return语句对于一个函数是很有必要的,因为往往需要函数在一系列的代码执行后会得到一个期望的返回值,而此值就是通过return语句返回,并且将控制权返回给主调函数.语法格式: return 表达式 代码实例如下: function add(){

《javascript高级程序设计》读书笔记(一)javascript简单介绍

第一章:javascript简单介绍 Netscape Navigator 开发的javascript   Javascript的实现有三部分: 1.核心(ECMAScript):提供核心语言功能. 2.文档对象模型(DOM):提供訪问和操作网页内容的方法和接口. 3.浏览器对象模型(BOM):提供和浏览器交互的方法和接口. Web浏览器仅仅是ECMAScripr实现的可能宿主环境之中的一个. 五大主流Web浏览器(IE,Firefox,Safari,Chrome和Opera) 第二章:在Htm

简单介绍Javascript匿名函数和面向对象编程

忙里偷闲,简单介绍一下Javascript中匿名函数和闭包函数以及面向对象编程.首先简单介绍一下Javascript中的密名函数. 在Javascript中函数有以下3中定义方式: 1.最常用的定义方式: function functionVal(variable){ return 3*variable; } 2.使用Function构造函数,将函数的参数和函数体内容作为字符串参数[不建议使用]: var objFunction=new Function('variable','return 3

javascript的arguments对象简单介绍

javascript的arguments对象简单介绍:这里以最简单的方式介绍一下arguments对象的用法,先看一段代码: var a=1; var b=2; function mytest(a,b){ var c=a+b; document.write(arguments[0]); } mytest(1,2); 以上代码可以输出传递给函数的第一个参数,也就是说通过类似于数组的索引值可以访问传递给函数的参数,而无需使用参数的名称.这里就介绍这么多了,希望能够给初学者一个最初的理解. 原文地址是