对象属性

1、JavaScript是一门动态类型语言,不是class-based, 而是prototype-based. 当考虑继承,JavaScript只有一种构造器,即objects. prototype框架是由2005年Sam Stephenson作为在Ruby on rails 中支持Ajax而被创造出来,其并非JavaScript原创

Prototype.png

在JavaScript中,几乎所有的类型及对象都有toString() 以及valueOf方法,这是由于类型与对象默认有__proto__引用, 其指向该类型构造函数的prototype属性,构造函数的__proto__指向Object的prototype,最终Object.prototype.__proto__ 指向null, prototype也被称为对象的公有属性或原型, null 没有原型,为该原型链的终点。

一般研究对象的__proto__和函数的prototype
对象.__proto__ === 某函数.prototype
如果把函数看成对象,那么函数.__proto__ === Function.prototype
如果把 Function 看成对象,那么 Function.__proto__ === Function.prototype

2、由于JavaScript中一个对象未被任何其他对象引用则会被垃圾回收,故常见的number, string, boolean, symbol等的构造函数均由一个全局对象window指向,故可以直接使用window.String()等方法。

window.String(1)
"1"

window.parseFloat(1.23)
1.23
(16).toString(16)
"10"

3、window还可以用于使用浏览器的默认方法,如以下:

window.alert
window.prompt
window.comfirm
window.console.log
window.console.dir
window.document
window.document.createElement
window.document.getElementById

4、构造函数可以对默认属性进行覆写,如数字Number的toString(16)表示转为16进制后用字符串表示

你可能感兴趣的:(对象属性)