JS里的对象(笔记整理)

2018-11-14  本文已影响0人  阿小经

目录

  • 四个全局函数
  • 公用属性
  • 面试题

四个全局函数

number

1.var n = new Numbe(xxx)
2.var n =xxx 与1对比缺点:因为n不是对象, n.toString()不能用

解决方法:临时转换 temp

临时转换 temp 调用结束后会开始新的temp
String

1.var s = 'dadasfsafaa'
2.var s2 = new String(s)

示例

生成一个hash

其中

s2.charAt(0) //获取某个索引对应的字符 —— API,等价于**s2[0]**
"s"

获取unicode编码,上面是10进制,下面是16进制

API

几个常用API


API
boolean

1.var f = false
2.var f2 = new Boolean(false)

boolean
所有对象皆是truey,f2是对象所以是truey。所以打印f2
object

1.var o1 = {} //推荐用这种
2.var o2= new Object()

两个都是对象,完全没区别,但是不相等

公用属性

公用属性就是hash


公用属性 原型链

Object.prototype —— object的公用属性
Object.prototype再往后就是null了

示例

number的公用属性就是Number.prototype
number的公用属性的公用属性是Object.prototype(可参考上图)

同理,String和boolean的也是


示例

注意:prototype是浏览器提前准备好的,无代码的时候就存在。我们用__proto__来引用公用属性
关系String.prototype是 String 的公用属性的引用,防止它不被引用被浏览器当垃圾清理

s.__proto__是 String 的公用属性的引用,来用它的

引用关系图

面试题

题目:下图1和2的区别是什么?


区别

1是对象属性,2是函数属性

关于Function

Function的prototype__proto__互相引用,都指向同一个地址

Function.__proto__ ===Function.prototype

上一篇 下一篇

猜你喜欢

热点阅读