该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间: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理解成是类的所有属性和方法的集合! |
|
返回顶楼 | |
发表时间: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了 |
|
返回顶楼 | |
发表时间: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 |
|
返回顶楼 | |