原型与原型链

2020-03-12  本文已影响0人  zhenghongmo

全局对象

  1. ECMAScript 规定的

    • global.parseInt()
    • global.parseFloat()
    • global.Number()
    • global.String()
    • global.Boolean()
    • global.Object()
  2. 是浏览器自己加的属性

    • window.alert()弹框提示
    • window.prompt()用户填写
    • window.comfirm()确认
    • window.console.log()开发者而工具打印
    • window.console.dir
    • window.document
    • window.document.createElement
    • window.document.getElementById

全局函数

  1. Number
var n = new Number(1) 创建一个 Number 对象
1 与 new Number(1) 的区别是什么?
image
  1. String
var str = new String('hello') 创建一个 String 对象
'hello' 与 new String('hello') 的区别是什么?
  1. Boolean
var b = new Boolean(false) 创建一个 Boolean 对象
false 与 new Boolean(false) 的区别是什么?
image
 if(b){
     console.log(xxx)
}
会打印出xxx,因为b为一个对象,并不是是falsy值了
  1. Object
var o1 = {}
var o2 = new Object()
o1 和 o2 没区别,但是 o1 === o2 是 false ,因为存储在 Stack(栈内存) 中的地址不同

公用的属性(原型)

公式

// 推论
var number = new Number()
number.__proto__ = Number.prototype
Number.__proto__ = Function.prototype // 因为 Number 是 Function 的实例

var object = new Object()
object.__proto__ = Object.prototype
Object.__proto__ = Function.prototype // 因为 Object 是 Function 的实例

var function = new Function()
function.__proto__ = Function.prototype
Function.__proto__ == Function.prototye // 因为 Function 是 Function 的实例!

上一篇下一篇

猜你喜欢

热点阅读