JS原型介绍

原型的作用是什么?

大家知道的JS不是面向对象的语言,就没有面向对象的继承的概念。那么原型就是用来弥补JS继承功能的。

下面有三个思想需要明确

  • 在JavaScript世界中一切都是对象。
  • 一切对象都是由方法new出来的。
  • 所有的JavaScript的变量最终都会变成Null。
  • JavaScript修改任何数据,都可以随心所欲。

JavaScript的数据类型

分为值类型和引用类型

值类型名 特别说明
number NaN
boolean
string
object null
function
undefined 默认初始化
symbol Symbol() ES6引入

一切引用类型都是Object

我们都知道JS判断类型有两种typeof和instanceof,但是这两个有什么区别么?

// 代码1
console.log(typeof(x));    // undefined
console.log(typeof(10));   // number
console.log(typeof('abc')); // string
console.log(typeof(true));  // boolean
console.log(typeof(function () { }));  //function
console.log(typeof([1, 'a', true]));  //object
console.log(typeof ({ a: 10, b: 20 }));  //object
console.log(typeof (null));  //object
console.log(typeof (new Number(10)));  //object
// 代码2
function ABC() {}
var abc = new ABC()
console.log(abc instanceof ABC)  //true
console.log(abc instanceof Object)  //true
console.log(ABC instanceof Function)  //true
console.log(ABC instanceof Object)  //true
console.log(Function instanceof Object)  //true
console.log(abc instanceof Function)  //false
console.log(Object instanceof Function)  //true

由代码1和代码2可知:
typeof是用来判断值类型,
instanceof是用来追寻祖宗血脉的。


本来看着代码2,可以寻迹这一条线,用来理清JavaScript对象的实例关系。
abc -> ABC -> Function -> Object -> Function ? 怎么最后出现循环实例化链?这不是要死循环?

其实,Function和Object的关系有点像鸡和鸡蛋的关系。(那就下一个笔记再来讨论)

转载于:https://www.cnblogs.com/xu-wojustme/p/6529115.html

捡起JavaScript(1)相关推荐

  1. 捡起JavaScript(3)

    原型链 prototype和__proto__之间的关系. function ABC() {} var abc = new ABC() 我们知道ABC有个prototype属性,当new出一个新变量a ...

  2. 掌握python和js_js与python哪个更强大 javascript和python哪个好入门

    请问javascript与python学哪个更好?女人比较不那么容易有欲念,对着自己心爱的男人,有时候一个温柔的拥抱已胜过一切激情. 你要做什么才是关键啊,前端的话你基本不会用到python啊,还是老 ...

  3. 用javascript制作随机汉字打字练习小程序

    这个是上一篇的续集.也是2020年年底的时候给银行妹写的小程序,对我来说已经没什么卵用了.但是,还是在CSDN里面留着吧,就像之前用python给那个叫xc的渣女写的转换器一样.于我是无用之物,但是发 ...

  4. 十四、JavaScript表单中的验证API

    @Author:Runsen @Date:2020/5/30 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排 ...

  5. 利用javascript实现简体与繁体的转换

    这段代码只是利用Javascript实现了简繁体的相互转化,因为仅操作当前页面,无刷新所以速度快,转换过程流畅. 话不多说上正餐: var Default_isFT = 0 //默认是否繁体,0-简体 ...

  6. JavaScript 基础知识 - DOM篇(二)

    7. 节点操作 7.1 节点的属性 节点分类: 标签节点 文本节点 属性节点 注释节点 节点常用的属性: nodeType:节点的类型 nodeName:节点名称 nodeValue:节点值 常见的节 ...

  7. 用 JavaScript 实现手势库 — 手势动画应用【前端组件化】

    前端<组件化系列>目录 「一」用 JSX 建立组件 Parser(解析器) 「二」使用 JSX 建立 Markup 组件风格 「三」用 JSX 实现 Carousel 轮播组件 「四」用 ...

  8. 软件开发基于JavaScript实现快速转换文本语言(繁体中文和简体中文)_javascript技巧

    软件开发基于JavaScript实现快速转换文本语言(繁体中文和简体中文)_javascript技巧 一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项 ...

  9. JavaScript-百炼成仙(第1节掌握JavaScript基础1.1-1.21)

    文章目录 1.1 第一章 初入宗门 1.2 第二章 直接量 1.3 第三章 数据类型 1.4 第四章 数据类型 扩展内容: 1.5 第五章 基础考核 1.6 第六章 何老 1.7 第七章 对象数据类型 ...

最新文章

  1. HarmonyOS UI 开发 vp ,fp , px 以及写具体数字的 理解
  2. robots.txt网站爬虫文件设置
  3. 【Python学习系列八】Python实现线性可分SVM(支持向量机)
  4. Some thoughts on my own O/R Mapping or Code Generation tools
  5. 记录一下Struts2升级遇到的问题
  6. 第 11 章 使用 ViewPager
  7. Caffe将图像数据转换成leveldb/lmdb
  8. python中tkinter的使用-中
  9. DSPBuilder笔记
  10. HDU2033 人见人爱A+B【进制】
  11. 使用python切分mp4视频并保存每帧图像
  12. 关于拉勾网的scrapy crawlspider爬虫出现的302问题的解决方式
  13. @Resource详解-代码示例
  14. WPS网盘怎么显示在我的电脑里?
  15. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化
  16. Spectra Logic的数据备份和归档解决方案推动企业磁带销量增长
  17. 100个python算法超详细讲解:搬山游戏
  18. 《富爸爸穷爸爸》读书摘录脑图
  19. 考研复试面试专业问题
  20. 计算机usb端口没反应,电脑usb接口没反应怎么解决

热门文章

  1. Actionbarsherlock Demo 浅析 :Overlay
  2. Android Studio 1.1的安装和遇到的坑
  3. 一种用css实现图片在父框中等比缩放并垂直居中的办法
  4. WCF Security userName/Password
  5. 基于java的数据结构学习——数组实现的栈以及简单应用
  6. 思维导图,流程图模板整合
  7. kotlin之plus、copyOf、reverse、forEach、filter、map、reduce、fold等函数解释和使用
  8. 数据库学习,树形结构的数据库表Schema设计方案
  9. 一起学并发编程 - 优雅关闭
  10. Gartner分享物联网和智慧城市最新数据