var arr = []  // var arr = new Array()
var obj = {} // var obj = new Object()
function fn() {} // var fn = Function() {}

隐式原型:(所有对象都有隐式原型)

显示原型:(函数才有显示原型)

隐式原型指向其构造函数的显示原型

hasOwnProperty(对象中是否存在某个属性)

Object.keys(obj)获取对象的key存入一个数组

Object.values(obj)获取对象中的value值存入数组

Object.entries(obj)获取每个键值对存入数组

构造函数(创建类, ES6中使用class)

 function Person(name, age) {
this.name = name;
this.age = age;
return this; // 默认返回的,可以省略
}

显示原型上添加属性或方法

 Person.prototype.getName = function() {
console.log(this.name)
}

创建实例

 var person1 = new Person('Nick', 20)
var person2 = new Person('Jone', 21)

实例的隐式原型指向构造函数的显示原型

 person1.__proto__ === Person.prototype
2 person1.getName === person1.__proto__.getName === Person.prototype.getName

调用方法

 person1.getName()
person2.getName()

constructor构造方法

原型链

JavaScript原型规则和实例的更多相关文章

  1. JavaScript原型继承的实例

    // 创建构造函数实例(获取DOM节点) <div id="app">测试字符</div>

  2. 前端知识体系:JavaScript基础-原型和原型链-理解原型设计模式以及 JavaScript中的原型规则

    理解原型设计模式以及 JavaScript中的原型规则(原文地址) 1.原型对象:我们创建的每一个函数(JavaScript中函数也是一个对象)都有一个原型属性 prototype,原型属性实质上是一 ...

  3. 2.JavaScript中的原型规则以及原型设计模式

    原型规则 原型规则 所有的引用类型(数组.对象.函数),都具有对象特征,即可自由扩展属性: 所有的引用类型,都有一个_proto_ 属性(隐式原型),属性值是一个普通对象: 所有函数,都具有一个pro ...

  4. Javascript 构造函数、原型对象、实例之间的关系

    # Javascript 构造函数.原型对象.实例之间的关系 # 创建对象的方式 # 1.new object() 缺点:创建多个对象困难 var hero = new Object(); // 空对 ...

  5. Javascript原型、构造函数、实例的关系

    1. 原型.构造函数.实例的关系 原型: 原型通过constructor指向构造函数,原型如果是自定义对象且没有明确将constructor指向构造函数,则原型的constructor指向函数的基类F ...

  6. javascript原型链继承

    一.关于javascript原型的基本概念: prototype属性:每个函数都一个prototype属性,这个属性指向函数的原型对象.原型对象主要用于共享实例中所包含的的属性和方法. constru ...

  7. JavaScript原型与原型链,原型的实际应用

    原型链是js面向对象的基础,非常重要. 一,创建对象的几种方法: 1,字面量 var o1 = { name:'o1' }; 2,构造函数 var M = function(name){ this.n ...

  8. 深入总结Javascript原型及原型链

    本篇文章给大家详细分析了javascript原型及原型链的相关知识点以及用法分享,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 我们创建的每个函数都有一个 prot ...

  9. JavaScript原型链及其污染

    JavaScript原型链及其污染 一.什么是原型链? 1.JavaScript中,我们如果要define一个类,需要以define"构造函数"的方式来define: functi ...

随机推荐

  1. COMSOL

    COMSOL_百度百科 https://baike.baidu.com/item/COMSOL/10943148?fr=aladdin 显著特点 ■ 求解多场问题 = 求解方程组,用户只需选择或者自定 ...

  2. MathType怎么打定积分竖线

    MathType怎么打定积分竖线-MathType中文官网 http://www.mathtype.cn/jiqiao/dingjifen-shuxian.html 输入公式后在分隔符模板中选择左竖线 ...

  3. 转:ActiveMQ的作用总结(应用场景及优势)

    原文地址: ActiveMQ的作用总结(应用场景及优势) 业务场景说明: 消息队列在大型电子商务类网站,如京东.淘宝.去哪儿等网站有着深入的应用, 队列的主要作用是消除高并发访问高峰,加快网站的响应速 ...

  4. 《HTTP - 基于http的认证》

    推荐一首歌 - 好吧,今天刚入职第二天,也没听歌. 哈哈哈哈. 1:何为认证? - 其实这个问题就比较宽泛了,总的来说,就是你有证明你身份的标识. - 和人类社会一样,你花了钱想看一场场演唱会,但是谁 ...

  5. es基本查询相关的

    一.获取索引的mapping GET linewell_assets_mgt_es/lw_devices/_mapping

  6. falsk 与 django cookie和session存、取、删的区别

    falsk cookie的存取删需导入from flask import Flask,make_response,request# 存COOKIE的方法@app.route('/setcookie') ...

  7. Python创建第一个django应用

    在helloworld工程的基础上,我们准备创建第一个基于web的django应用,把这个应用名字命名为Guest   1.首先,是如何创建这个应用包,当然第一选择我们可以进入到cmd中,执行如下命令 ...

  8. Redis分布式锁服务(转)

    原文:http://www.cnblogs.com/mushroom/p/4752499.html 概述 在多线程环境下,通常会使用锁来保证有且只有一个线程来操作共享资源.比如: object obj ...

  9. win10 下JDK10的下载安装与环境变量配置

    一.下载 首先,要在win10 操作系统上安装jdk,就要去oracle官网下载合适的jdk版本,在这里以jdk10进行安装 下载链接:http://www.oracle.com/technetwor ...

  10. mysql触发器:插入数据前更新创建时间为服务器的时间

    DROP TRIGGER IF EXISTS `upd_patientquestionnaire`; create trigger upd_patientquestionnaire BEFORE in ...