JS基础原型

全局对象 window

ECMAScript 规定全局对象叫做 global,但是浏览器把 window 作为全局对象(浏览器先存在的)

window 就是一个哈希表,有很多属性。window 的属性就是全局变量。

这些全局变量分为两种:

一种是 ECMAScript 规定的

global.parseInt

global.parseFloat

global.Number

global.String

global.Boolean

global.Object

一种是浏览器自己加的属性

window.alert

window.prompt

window.comfirm

window.console.log

window.console.dir

window.document

window.document.createElement

window.document.getElementById

所有 API 都可以在 MDN 里找到详细的资料。

全局函数

1.Number:var = 1; 和 var a = new number(1);的区别

var a = 1;//是将该值存储在stack中。

 var a = new number(1)//是在stack中存储一个地址,通过地址找到new number(1);

2.String boolean 和Number一样。

3Object  

var o1 = {}  和  var o2 = new Object() //   o1 和 o2 没区别

共用属性

所有对象都有 toString 和 valueOf 属性,JS 的做法是把 toString 和 valueOf 放在一个对象里(暂且叫做公用属性组成的对象)然后让每一个对象的 __proto__ 存储这个「公用属性组成的对象」的地址。

重要公式

var 对象 = new 函数()

对象.__proto__ === 对象的构造函数.prototype

// 推论

var number = new Number()

number.__proto__ = Number.prototype

var object = new Object()

object.__proto__ = Object.prototype

var function = new Function()

function.__proto__ = Function.prototype

// 另外,所有函数都是由 Function 构造出来的,所以

Number.__proto__ = Function.prototype // 因为 Number 是函数,是 Function 的实例

Object.__proto__ = Function.prototype // 因为 Object 是函数,是 Function 的实例

Function.__proto__ == Function.prototye // 因为 Function 是函数,是 Function 的实例!

.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是原型语言 只有对象,没有类;对象继承对象,而不是类继承类。 “原型对象”是核心概念。原型对象是新对象的模板,...
    zhoulujun阅读 6,854评论 0 12
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,104评论 0 3
  • 第一章 错误处理: 错误: 程序运行过程中,导致程序无法正常执行的现象(即bug) 现象: 程序一旦出错,默认会报...
    fastwe阅读 4,840评论 0 1
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,362评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,378评论 2 17