JS里公用属性(原型与原型链)

一、什么是原型?

 在javascript中,全局函数Number、String、Boolean、Object等,都有toSting()、valueOf()等方法,倘若每个函数都独自定义这些相同的属性和方法,势必对内存造成极大的浪费。因此这些相同的属性和方法,都被集合到一起,对象可通过__proto__属性访问(公用的属性全部存在__proto__里)这些共用属性prototype,如图:

var n = new Number(1)

var obj = {}

obj.__proto__ === Object.prototype //true obj共用Object的属性

n.__proto__ === Number.prototype //true,n共用Number的属性

Number.prototype.__proto__===Object.prototype//true,Number.prototype 本身也是个对象,共用Object的属性

var s = new String('hi')

s.__proto__ === String.prototype //true

一般:object对象公有的属性有:toString   valueOf

Number公有属性有:toFixed   toExponential   toString() //可接16进制


公有属性就是原型:prototype

(1)object的公有属性

Var o1 = {}

O1.__proto__ = object.prototype


(2)number的公用属性

Var n1 = new number(1)

n1.__proto__ = number.prototype

n1.__proto__.__proto__ = object.prototype    // n1共有属性的共有属性


(3)String / boolean的公用属性

Var s1 = new String(‘1’)

s1.__proto__ = String.prototype

s1共有属性的共有属性:s1.__proto__.__proto__ = object.prototype


Var b1 = new Boolean(ture)

b1.__proto__ = Boolean.prototype

b1.__proto__.__proto__ = object.prototype    // b1共有属性的共有属性


语法:(1) var 对象 = new 函数()

(2)对象.__proto__ ===函数.prototype

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

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

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

Object.__proto__ ===Function.__proto__ // true,因为 Function.__proto__ === Function.prototye

什么是原型链?

每个实例对象(object )都有一个私有属性(称之为__proto__)指向它的原型对象(prototype)。该原型对象也有一个自己的原型对象(proto) ,层层向上直到一个对象的原型对象为 null。这种链式结构,称之为原型链。

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

推荐阅读更多精彩内容

  • 前言:原型与原型链这两个名词毋庸置疑听起来是很高大上的,以前总是出现在传说中,这两天看了教程,准备介绍一下这传说中...
    EnochQin阅读 3,860评论 0 3
  • 全局对象 windowECMAScript 规定全局对象叫做 global,但是浏览器把 window 作为全局对...
    半斋阅读 3,359评论 0 0
  • 什么是原型语言 只有对象,没有类;对象继承对象,而不是类继承类。 “原型对象”是核心概念。原型对象是新对象的模板,...
    zhoulujun阅读 6,848评论 0 12
  • JS中原型链,说简单也简单。 首先明确: 函数(Function)才有prototype属性,对象(除Object...
    前小白阅读 9,359评论 0 9
  • 有一个地方, 秋叶随风, 恰悲凉, 那里有一生的思念, 诉说的再见。 有一个地方, 徘徊谧声, 多思量, 那里有欢...
    笔易景悲阅读 2,350评论 4 2