一.对象:普通对象   函数对象

二.构造函数特点: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.prototype(函数对象),每个原型对象都有一个constructor属性,指向prototype属性所在的函数Person

即person1.constructor=person2.constructor=Person.prototype.constructor

通过原型实现继承

三.__proto__,每个对象都有这个属性指向创建他的构造函数的原型即person1.__proto__=Person.prototype

//var obj={}
var obj=new Object();
obj.constructor===Object
obj.__proto__===Object.prototype

person1.__proto__是Person.prototype

Person.__proto__是Person是构造函数,Function,即Function.prototype

Person.prototype._proto__是  Person.prototype是原型对象,Object,即Object.prototype

Object.__proto__是 Objext是构造行数Function 即Function.prototype

Object.prototype.__ptoto__是 Object.prototype的原型对象的__proto__指向构造函数的prototype,处于顶层是null

四。Math和Json是以对象存在的 即Math.__proto__===Object.prototype

五。Function.prototype是唯一一个typeof Function.prototype是function的prototype,其他构造器的prototype都是object

六。注意constructor的指向例如

function Animal(){

}
Animal.prototype.age='20' function Cat(name,color){
this.name = name
this.color = color
this.name2 = '11112222'
}
Cat.prototype = new Animal();
Cat.prototype.type="猫"
Cat.prototype.eat=function(){
console.log('爱吃鱼')
}
function Dog(name){
this.name=name
}
Dog.prototype = new Animal();
Dog.prototype={
getName:function(){
console.log('gougou')
}
}

Cat.prototype.constructor === Animal   Dog.prototype.constructor===Object 两者不相同,后者是重写Animal.prototype,前者是修改。

七。

  • 原型和原型链是JS实现继承的一种模型。
  • 原型链的形成是真正是靠__proto__ 而非prototype

js原型和原型链理解 constructor 构造函数的更多相关文章

  1. Js中关于构造函数,原型,原型链深入理解

    在 ES6之前,在Javascript不存在类(Class)的概念,javascript中不是基于类的,而是通过构造函数(constructor)和原型链(prototype chains)实现的.但 ...

  2. JS中面向对象的,对象理解、构造函数、原型、原型链

    6.1 理解对象 6.1.1 对象属性类型 ECMS属性有两种类型:数据属性和访问器属性 1 数据属性 [[configurable]] 表示能否通过Delete 删除属性从而从新定义属性,能否修改属 ...

  3. 探索js原型链和vue构造函数中的奥妙

    这篇文章首先会讲到原型链以及原型链的一些概念,然后会通过分析vue的源码,来看一下vue的构造函数是如何被创建的,now we go! 一.什么是原型链? 简单回顾下构造函数,原型和实例的关系:   ...

  4. 理解JS原型和原型链

    本文通过对<JavaScript高级程序设计>第六章的理解,加上自己的理解,重组了部分内容,形成下面的文字. 理解了原型这个概念,你的JS世界会清明很多. 为什么要为JS创造原型这个概念 ...

  5. Js笔记(对象,构造函数,原型,原型链,继承)及一些不熟悉的语法

    对象的特性: 1.唯一标识性,即使完全不一样的对象,内存地址也不同,所以他们不相等 2.对象具有状态,同一个对象可能处在不同状态下 3.对象具有行为,即对象的状态可能因为他的行为产生变迁 Js直到es ...

  6. 前端总结·基础篇·JS(一)原型、原型链、构造函数和字符串(String)

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

  7. JS原型、原型链、构造函数、实例与继承

    https://cloud.tencent.com/developer/article/1408283 https://cloud.tencent.com/developer/article/1195 ...

  8. JS基础-该如何理解原型、原型链?

    JS的原型.原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清楚,更多的"很可能"是一知半解,而这部分内容又是JS的核心内容,想要技术进阶的话肯定不能对 ...

  9. javascript系列--认识并理解构造函数,原型和原型链

    一.前言 介绍构造函数,原型,原型链.比如说经常会被问道:symbol是不是构造函数:constructor属性是否只读:prototype.[[Prototype]]和__proto__的区别:什么 ...

随机推荐

  1. 题解 P6271 [湖北省队互测2014]一个人的数论

    通过这道题学了伯努利数,写篇题解推一下 题目 先推一下式子 \[\sum_{i=1}^ni^d[gcd(i,n)=1] \] \[\sum_{i=1}^{n}i^d\sum_{k|i}\sum_{k| ...

  2. 题解—P3000 [USACO10DEC]Cow Calisthenics G

    做这题之前最好学会 "树形 \(dp\) 求树的直径"这一前缀知识(虽然我会但是我还是没想出来) 几乎想到要求直径这道题也没什么问题了(这不是废话吗,为什么题面里给了"直 ...

  3. spring cloud alibaba版本选择

    https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明 Spring Cloud Version Spring Cloud Version ...

  4. [转]C# 互操作性入门系列(二):使用平台调用调用Win32 函数

    传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 ...

  5. 【springcloud alibaba】配置中心之nacos

    接着上一篇的[springcloud alibaba]注册中心之nacos,这一篇主要讲nacos的配置中心能力.nacos的集群部署及持久化请看上一篇. ---------------------- ...

  6. Spring @Order注解的使用

    注解@Order或者接口Ordered的作用是定义Spring IOC容器中Bean的执行顺序的优先级,而不是定义Bean的加载顺序,Bean的加载顺序不受@Order或Ordered接口的影响: 1 ...

  7. filter打包区分环境

    项目目录结构: 父pom: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  8. Vue.JS快速上手(Vue-router 实现SPA 开发)

    一.什么是路由 URL -> 映射 -> 组件 Hash+onhashchange History.pushstate+replaceState+onpopstate 二.准备工作 组件 ...

  9. TDSQL MySQL版基本原理-水平分表 读写分离 弹性扩展 强同步

    TDSQL MySQL版(TDSQL for MySQL)是部署在腾讯云上的一种支持自动水平拆分.Shared Nothing 架构的分布式数据库.TDSQL MySQL版 即业务获取的是完整的逻辑库 ...

  10. 从IT圈“鄙视链”看前端开发有多难?

    如今"鄙视链"体现在生活的方方面面,各行各业都有默认一致的鄙视链.IT圈子因为开发语言多样.工程师岗位种类多.技术框架多,也有自己圈子内的鄙视链.按照开发工程师的岗位形成的鄙视链是 ...