论坛首页 Web前端技术论坛

javascript对象的property和prototype是这样一种关系

浏览 31691 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-03-22  
楼主:想请教一下,我一直对 prototype 有点疑惑!
function MyObject1(formalParameter){  
    this.testNumber = formalParameter;  
}
------------------------------------------------------------
MyObject1.prototype.aaa = function (){
    this.test = "test";
}
MyObject1.prototype.bbb = function (){
    this.test1 = "test1";
}
上面的代码相当于将 MyObject1 里面添加属性和方法
------------------------------------------------------------
function MyObject2(formalParameter){  
    this.testString = formalParameter;  


MyObject2.prototype = new MyObject1( 8 );
相当于 MyObject2 继承了 MyObject1 的所有属性和方法!
能不能把prototype理解成是类的所有属性和方法的集合!
0 请登录后投票
   发表时间:2007-03-23  
jacky66666 写道
楼主:想请教一下,我一直对 prototype 有点疑惑!
function MyObject1(formalParameter){  
    this.testNumber = formalParameter;  
}
------------------------------------------------------------
MyObject1.prototype.aaa = function (){
    this.test = "test";
}
MyObject1.prototype.bbb = function (){
    this.test1 = "test1";
}
上面的代码相当于将 MyObject1 里面添加属性和方法
------------------------------------------------------------
function MyObject2(formalParameter){  
    this.testString = formalParameter;  


MyObject2.prototype = new MyObject1( 8 );
相当于 MyObject2 继承了 MyObject1 的所有属性和方法!
能不能把prototype理解成是类的所有属性和方法的集合!


用plain js,一定要抛弃类的想法,一切都是对象,对象可以看成哈希表,
再理解了对象和prototype以及constructor的关系,js里prototype-based oo部分基本上就ok了
0 请登录后投票
   发表时间:2007-03-23  
jacky66666 写道
楼主:想请教一下,我一直对 prototype 有点疑惑!
function MyObject1(formalParameter){  
    this.testNumber = formalParameter;  
}
------------------------------------------------------------
MyObject1.prototype.aaa = function (){
    this.test = "test";
}
MyObject1.prototype.bbb = function (){
    this.test1 = "test1";
}
上面的代码相当于将 MyObject1 里面添加属性和方法
------------------------------------------------------------
function MyObject2(formalParameter){  
    this.testString = formalParameter;  


MyObject2.prototype = new MyObject1( 8 );
相当于 MyObject2 继承了 MyObject1 的所有属性和方法!
能不能把prototype理解成是类的所有属性和方法的集合!

不要用继承来理解prototype,prototype在java, c#里没有对应的概念,这篇帖子的主要目的是要说明prototype chain
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics