`
tyny
  • 浏览: 75780 次
  • 性别: Icon_minigender_1
  • 来自: 黄冈
社区版块
存档分类
最新评论

javascript的构造函数

阅读更多

本来打算翻译这篇文章,但是感觉原文才是真正原汁原味的,所以这里也偷偷懒。

之前一直纠结于对象的构造函数,通过阅读Joost Diepenmaat的这篇【Constructors considered mildly confusing】,有了比较明晰的了解。一般来说,对象的constructor其实就是对象的[[Prototype]]的构造函数。

例如函数

function A() {}
function B() {}
function C() {}
B.prototype = new A();
C.prototype = new B();
var c = new C();
console.log(c.constructor === A );    //true
 

那么c.constructor是什么呢。c.constructor==C.prototype.constructor==B.prototype.constructor==A.prototype.constructor==A,即是函数A。因为c.constructor等于函数C的原型的构造函数,C函数的原型是什么呢——B的对象,B的对象的构造函数是函数B的原型的构造函数,B的原型同样是——函数A的对象,A的对象的构造函数就是函数A。这就是为啥c.constructor 等于 A(需要注意的是,这是新建C时的状况,即使后面修改了部分构造函数的原型,这里的原型链依然是新建C那个时刻的原型链)。

对于instanceof,这个函数的作用不用多说,但是他的实际含义确实很模糊(可能自己的理解不全),这篇文章同样也做了同样的说明,其实他就是检测比较对象的原型链中是否存在比较构造函数的原型。详细请参照【Constructors considered mildly confusing】

题外话,最后发现Mozilla Developer Network 的文章相当不错,感觉有时候比一些书籍更为详细。


引用

 

分享到:
评论

相关推荐

    JavaScript构造函数和原型对象介绍.md

    JavaScript构造函数和原型对象介绍,对于构造函数的创建以及一些简单地介绍,还有就是原型对象对于构造函数的一些补充。

    Javascript 构造函数,公有,私有特权和静态成员定义方法

    总结起来,JavaScript构造函数允许我们定义对象的结构并初始化对象的状态。构造函数中的公有方法可以通过原型或实例本身来定义。私有特权成员允许我们在构造函数内部创建可控制访问的私有属性和方法。静态成员则是与...

    Javascript 构造函数详解

    JavaScript中的构造函数是实现面向对象编程的关键组成部分,它在创建对象时起着核心作用。本文将深入探讨构造函数的概念、用途以及使用时应注意的事项。 一、什么是构造函数 构造函数在JavaScript中是一个特殊的...

    JavaScript构造函数详解

    总结来说,JavaScript构造函数是用于初始化对象的一种特殊函数。理解构造函数、原型链以及this关键字在构造函数中的行为对于掌握JavaScript编程至关重要。通过构造函数与原型对象之间的相互作用,开发者能够创建复杂...

    javascript 构造函数强制调用经验总结

    在JavaScript编程中,构造函数是一种特殊的函数,用于创建和初始化对象。构造函数通常使用new操作符来调用,...同时,理解JavaScript的执行上下文、作用域链以及this的指向也是深入掌握JavaScript构造函数所必需的。

    Javascript 构造函数 实例分析

    JavaScript 构造函数是语言中的一个重要概念,它们用于创建对象并初始化其属性和方法。在JavaScript中,每个函数都可以作为构造函数使用,通过在函数名前加上`new`关键字来调用,这样就会创建一个新的对象实例。让...

    javascript构造函数以及原型对象的理解

    以下是一个构造函数的例子 如果是实例方法,不同的实例化,它们引用的地址是不一样的,是唯一的。 //定义一个构造函数 function People(name,age){ this.name=name; this.age=age; this.dothings=function(){ ...

    javascript 构造函数方式定义对象

    下面将详细介绍JavaScript构造函数以及如何使用它们来定义对象。 ### 1. 构造函数的定义与使用 构造函数通常以大写字母开头,这在JavaScript中是一个约定,但并非强制规则。构造函数的作用是在创建新对象时被调用...

    深入理解javascript构造函数和原型对象

    在深入理解JavaScript的过程中,构造函数和原型对象是两个核心概念。JavaScript是一种基于对象(Object-based)和原型(Prototype-based)的语言,其对象模型与传统的基于类(Class-based)语言有所不同。理解构造...

    javascript构造函数

    JavaScript 构造函数是编程语言中的一个重要概念,它在创建对象和实现面向对象编程时起着核心作用。本文将深入探讨 JavaScript 构造函数的工作原理、用途以及如何使用它们。 一、JavaScript 构造函数的基本概念 在 ...

    构造函数 原型对象 实例、图解

    JavaScript 构造函数、原型对象和实例之间的关系详解 在 JavaScript 中,构造函数、原型对象和实例之间存在着紧密的关系,这三个概念息息相关。下面我们将详细解释它们之间的关系。 构造函数 在 JavaScript 中,...

    一文秒懂JavaScript构造函数、实例、原型对象以及原型链

    ### JavaScript构造函数、实例、原型对象以及原型链详解 #### 1. 概述 JavaScript是一种面向对象的语言,但在ES6之前,并不支持基于类的面向对象编程模式。相反,它采用了一种独特的机制——构造函数、原型和原型...

    Javascript 设计模式之构造函数模式.zip

    构造函数模式是JavaScript中的一种重要设计模式,用于创建对象。本文将深入探讨构造函数模式及其应用。 构造函数模式的核心在于使用函数来创建具有相似属性和方法的对象。在JavaScript中,函数可以作为构造函数来...

    JavaScript 构造函数 面相对象学习必备知识

    关于JavaScript构造函数,如今出现了很多JavaScript的框架,例如jQuery、Ext等等这些,这些将JavaScript作为一种面向对象的语言进行编程,那么JavaScript到底是怎么样实现面向对象的一些特征的呢,首先,我们来看看...

    slider:创建图像滑块JavaScript构造函数

    在这个JavaScript构造函数中,图像滑块可能包含了以下核心组件和功能: 1. **初始化**:构造函数会被调用,用于初始化滑块,包括设置初始值、范围、步长等参数。 2. **DOM操作**:D3.js会用来创建、选择或修改HTML...

    浅谈javascript构造函数与实例化对象

    JavaScript 中的构造函数和其它语言中的构造函数是不同的。通过 new 关键字方式调用的函数都被认为是构造函数。任何JavaScript 函数都可以用做构造函数,构造函数必须使用new 运算符作为前缀来创建新的实例。

Global site tag (gtag.js) - Google Analytics