JavaScript原型规则和实例
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原型规则和实例的更多相关文章
- JavaScript原型继承的实例
// 创建构造函数实例(获取DOM节点) <div id="app">测试字符</div>
- 前端知识体系:JavaScript基础-原型和原型链-理解原型设计模式以及 JavaScript中的原型规则
理解原型设计模式以及 JavaScript中的原型规则(原文地址) 1.原型对象:我们创建的每一个函数(JavaScript中函数也是一个对象)都有一个原型属性 prototype,原型属性实质上是一 ...
- 2.JavaScript中的原型规则以及原型设计模式
原型规则 原型规则 所有的引用类型(数组.对象.函数),都具有对象特征,即可自由扩展属性: 所有的引用类型,都有一个_proto_ 属性(隐式原型),属性值是一个普通对象: 所有函数,都具有一个pro ...
- Javascript 构造函数、原型对象、实例之间的关系
# Javascript 构造函数.原型对象.实例之间的关系 # 创建对象的方式 # 1.new object() 缺点:创建多个对象困难 var hero = new Object(); // 空对 ...
- Javascript原型、构造函数、实例的关系
1. 原型.构造函数.实例的关系 原型: 原型通过constructor指向构造函数,原型如果是自定义对象且没有明确将constructor指向构造函数,则原型的constructor指向函数的基类F ...
- javascript原型链继承
一.关于javascript原型的基本概念: prototype属性:每个函数都一个prototype属性,这个属性指向函数的原型对象.原型对象主要用于共享实例中所包含的的属性和方法. constru ...
- JavaScript原型与原型链,原型的实际应用
原型链是js面向对象的基础,非常重要. 一,创建对象的几种方法: 1,字面量 var o1 = { name:'o1' }; 2,构造函数 var M = function(name){ this.n ...
- 深入总结Javascript原型及原型链
本篇文章给大家详细分析了javascript原型及原型链的相关知识点以及用法分享,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 我们创建的每个函数都有一个 prot ...
- JavaScript原型链及其污染
JavaScript原型链及其污染 一.什么是原型链? 1.JavaScript中,我们如果要define一个类,需要以define"构造函数"的方式来define: functi ...
随机推荐
- flex-shrink (适用于弹性盒模型容器子元素)
设置或检索弹性盒的收缩比率(根据弹性盒子元素所设置的收缩因子作为比率来收缩空间.) 语法 flex-shrink: <number> (default 1) flex-shrink的默认值 ...
- 【编译原理】c++实现词法分析器
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- json和pickle,XML
什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言:JSON ...
- [knowledge][DPI] kernel bypass 高性能网络包处理的宏观思路
高性能网络包处理,这个问题的出现,主要原因在于linux内核协议栈的处理能力,已经跟不上日益增长的网卡吞吐量以及数据量. 有关详细的内核协议栈瓶颈的阐述,可以参考如下这篇文章: <Improvi ...
- 实验一:Java开发环境的熟悉
实验一:Java开发环境的熟悉 一.实验一-1 在码云中建立"20165317exp1"的项目. 从git中下载该项目. 在"20165317exp1"目录下建 ...
- falsk 与 django 捕获异常
falsk捕获异常@app.errorhandler(405)def internal_server_error(e): return '这个接口不能被GET请求到,只能post' django 捕获 ...
- qt设计器中使用自定义控件
当qt设计器中的控件不能满足需要时,这时就要自定义控件.然后再在qt设计器中使用. 在qt设计器中使用自定义控件时,可以用提升. 从控件派生出新的类: 然后在qt设计器中右键需要提升的控件: 填入提升 ...
- push问题1
问题: $ git pushTo gitee.com:kekemuyu/xtpole.git ! [rejected] master -> master (fetch first)error: ...
- Sublime_text编辑器插件安装
Sublime_text 3下载与安装详细教程 参考: https://blog.csdn.net/weixin_40682842/article/details/78727266 http://ww ...
- vue-router利用url传递参数
app.vue <template> <div id="app"> <router-link to="/">home< ...