JavaScript:理解constructor

5种类型的对象输出的构造器是5种类型,这是一个简单的例子:

var a = new Array();

if(a.constructor == Array) return true; ==> true

var o = new Object();

if(o.constructor == Object) return true; ==> true

那么一个函数的构造器,也就是输出这个函数,没错你猜对了,就是这样的。

function fun(){ } ;

fun.prototype.constructor = fun;

这样写,你能看懂吗?看了下面这个你就懂了。

function obj(){ } ;

obj.prototype = Object.prototype.constructor;

这样就能区别出继承的函数是实例对象还是继承构造函数。

时间: 2024-08-08 01:27:42

JavaScript:理解constructor的相关文章

Javascript属性constructor/prototype的底层原理

在Javascript语言中,constructor属性是专门为function而设计的,它存在于每一个function的prototype属性中.这个constructor保存了指向function的一个引用.在定义一个函数(代码如下所示)时, function F() { // some code } JavaScript内部会执行如下几个动作: 为该函数添加一个原形属性(即prototype对象). 为prototype对象额外添加一个constructor属性,并且该属性保存指向函数F的

node.js javascript理解原型继承

util.inherits util.inherits(constructor, superConstructor)是一个实现对象间原型继承的函数. JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同.JavaScript 没有提供对象继承的语言级别特性,而是通过原型复制来实现的 var util = require('util'); function Base() { this.name = 'base'; this.base = 1991; this.sayHello =

JavaScript:理解worker事件api

如果你不是很了解Event事件,建议先看我上一篇随文javascript:理解DOM事件.或者直接看下文worker api. 首先,我们需要实例一个Worker的对象,浏览器会根据新创建的worker对象新开一个接口,此接口会处理客户端与indexedDB数据库之间的通信.这里的数据库是指浏览器数据库.如果,你需要判断浏览器是否支持worker对象,详见如下代码.或者浏览器是否支持indexedDB数据库,详见同下,二者判断最好选择前者.因为IE不支持indexedDB . if(window

Javascript —— 理解对象字面量

javascript 手记(摘自Javascript中文网): 在javascript中,可以通过构造函数来创建对象,也可以通过对象字面量来创建对象. 在编程语言中,字面量是一种表示值的记法,例如,"Hello world!" 在许多语言中都表示一个字符串字面量(string literal ).JavaScript也不例外,如 5.true.false和null,它们分别表示一个整数.两个布尔值和一个空对象. javascript支持对象字面量,允许使用一种简洁而可读的记法来创建对象

javascript的constructor简单介绍

javascript的constructor简单介绍:constructor可以返回对象对创建它的构造函数的引用,例如: var arr=[1,2,3]; console.log(arr.constructor===Array); 以上代码中的输出值是true,这说明数组对象arr的constructor属性指向它的构造函数Array.可能上面的代码过于简单了,下面再来一点稍稍复杂的代码分析一下: Object.prototype.webName="蚂蚁部落"; function sh

javascript:理解Object

Object对象的类型是Object,Object的原始值是什么?需要用constructor的prototype,constructor的意思就是这个函数有一个默认的属性prototype,而这个prototype.valueof的constructor默认指向这个函数原始值.Object.constructor.valueof()可以输出Object的原始值,输出为Function Function(){[native code]}.不过现在的浏览器可以直接输出原始值alert(Object

JavaScript:理解Promise方法

什么是promise? Promise的核心思想是代表异步操作的一个结果,并且promise具有三个状态(pending初始状态,fulfilled成功状态,rejected失败状态).我们可以理解为使用promise可以实现非阻塞io的功能,根据三个不同的状态,我们可以知道回调函数实现在哪个过程. Promise.prototype.then 源码分析: 1 this.then = function(onFulfilled) { 2 if (typeof onFulfilled !== "fu

javascript:理解try...catch...finally

以前,我一直喜欢用console.log(do some thing)去执行输出的类型和值,想马上看到弹出的信息,就会直接在浏览器alert()一下,这些是基础知识. 稍微复杂一点点,就要用到判断语句,if else进行条件判断,话说if条件else否则,这样的判断对于写程序代码的码侬已经是非常熟悉不过了. 如果你觉得这个也很简单,可能会用到混合if else条件判断语句加上try catch 来处理语句,虽然用try catch能处理任何的对象,通过throw扔一条有错误的语句,接着catch

javascript设计模式-Constructor(构造器)模式

Constructor是一种在内存已分配给该对象的情况下,用于初始化新创建对象的特殊方法.Object构造器用于创建特定类型的对象–准备好对象以备使用,同事接收构造器可以使用参数,以在第一次创建对象时,设置成员属性和方法值. 对象创建 创新新对象,在javascript中通常有两种方法: 对象直面量方法 var newObj = {}; 构造器的简洁方法 var newObj = new Object(); 在Object构造器为特定的值创建对象封装,或者没有传递值时,它将创建一个肯那个对象并返