【发布时间】:2011-01-17 01:15:00
【问题描述】:
在 Javascript 的原型继承系统中,对象的内部原型引用设置为其构造函数的“原型”属性,该属性本身就是一个对象。
构造函数的“原型”属性的属性可以像对象实例的属性一样被解析。但是,构造函数对象的实际属性不可供实例访问:
function MyConstructor() { }
MyConstructor.x = 3
MyConstructor.prototype.y = 7
a = new MyConstructor()
a.x == 3 // FALSE
a.y == 7 // TRUE
但是,如果构造函数的属性(“x”)在函数体中用this关键字声明,这些属性当然是由实例解析的:
function MyConstructor() {
this.x = 3
}
MyConstructor.prototype.y = 7
a = new MyConstructor()
a.x == 3 // TRUE
为什么?有什么区别?
【问题讨论】:
标签: javascript oop inheritance prototype this