锁定老帖子 主题:javascript进阶之对象篇
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-04-22
只是说明解释性语言的本质是一样的,基本可以互换
哪一种语言优雅,哪一种语言更实用其实都不是绝对的 |
|
返回顶楼 | |
发表时间:2006-04-23
说穿了,所有语言的面向对象都是模拟出来的,呵呵。
如果两种语言同样可以解决问题,我会选择简单的; 如果两者简单程度一样,我会选择优美的; 如果都一样,我会选择比较熟悉的。 |
|
返回顶楼 | |
发表时间:2006-04-23
呵呵,我选择熟悉的以及实用的Java
|
|
返回顶楼 | |
发表时间:2006-08-31
看了后受益菲浅!!!
|
|
返回顶楼 | |
发表时间:2006-09-11
引用 居然alert(Object.prototype.isPrototypeOf(Person));//true也是true.搞不懂
这说明Function也是从Object继承下来的。 因为alert(Object.prototype.isPrototypeOf(Function))也是true。 |
|
返回顶楼 | |
发表时间:2006-09-11
benny 写道 引用 居然alert(Object.prototype.isPrototypeOf(Person));//true也是true.搞不懂
这说明Function也是从Object继承下来的。 因为alert(Object.prototype.isPrototypeOf(Function))也是true。 alert(Object.prototype.isPrototypeOf(Function)) alert(Function.prototype.isPrototypeOf(Object)) 楼上能用你的理论解释一下吗? |
|
返回顶楼 | |
发表时间:2006-09-12
进行一系列测试:
alert(Object.prototype.isPrototypeOf(Function)); // true 因此推断出 Function继承自Object alert(Function.prototype.isPrototypeOf(Person)); // true 因此推断出 Person继承自Function (这是当然的,因为Person就是Function的一个实例) 所以最终可以得出 alert(Object.prototype.isPrototypeOf(Person)); // true 进一步测试 alert(Object.prototype.isPrototypeOf(Object.prototype)); // true alert(Object.prototype.isPrototypeOf(Person.prototype)); // true 因此又可以推断出prototype这种对象也是继承自Object 继续测试可知Array Date RegExp Error都是继承自Object 但是注意下面的测试结果 alert(Object.prototype.isPrototypeOf(123)); // false alert(Object.prototype.isPrototypeOf("123")); // false alert(Object.prototype.isPrototypeOf(false)); // false alert(Object.prototype.isPrototypeOf(new Number(123))); // true alert(Object.prototype.isPrototypeOf(new String("123"))); // true alert(Object.prototype.isPrototypeOf(new Boolean(true))); // true 可见JavaScript如同Java,对于一些基本数据类型也有原生类型的概念,这些原生类型的数据不是Object的实例。 特别要注意的是这里的"123",它是原生类型;而new String("123")就不是,这一点跟Java不一样。Java中String是没有原生类型的。 个人拙见,望多多指教! |
|
返回顶楼 | |
发表时间:2006-09-13
alert(Object.prototype.isPrototypeOf(Function)); // true 因此推断出 Function继承自Object ps:我这样理解 Function=Object(){},意思是Function 是Object的一个实例 但是他本身可以作为“对象构造器”。 function Person() { this.name = 'people'; } var x= new Person(); alert(x['name']); //与 var x ={ name: 'people' } alert(x['name']); //与 var x =eval("x={name: 'people'}"); alert(x['name']);都是生成一个Object对象。 引用 alert(Function.prototype.isPrototypeOf(Person)); // true 因此推断出 Person继承自Function (这是当然的,因为Person继承Function) ps:我这样理解 person=Function(){},意思是Person是Function的一个实例,但是他本身也是Function对象,所以可以作为“对象构造器”来使用。 引用 所以最终可以得出
alert(Object.prototype.isPrototypeOf(Person)); // true ps: 我这样理解 person=Function(){},意思是person是Function“对象构造器”的构造的一个“对象构造器”对象 但不管他们功能如何 他们都是对象 都是Object的实例。 但是 alert(Object.prototype.isPrototypeOf(o));//true alert(Person.prototype.isPrototypeOf(o)); // true alert(Function.prototype.isPrototypeOf(o)); //false 我的理解o是“对象构造器”person构造的一个“Object”对象 ,而不是“对象构造器”(Function)对象,不管怎么说,还是对象,所以只有第三句是不成立的。 引用 进一步测试
alert(Object.prototype.isPrototypeOf(Object.prototype)); // true alert(Object.prototype.isPrototypeOf(Person.prototype)); // true 因此又可以推断出prototype这种对象也是继承自Object 继续测试可知Array Date RegExp Error都是继承自Object ps:我这样理解Function prototype Array Date RegExp Error都是Object的实例(语言内建的),typeof 这些个东东当然都是Object 的,可能Function 覆盖了Object的一些方法 所以我们打印的时候出现的的是‘function’。 引用 但是注意下面的测试结果
alert(Object.prototype.isPrototypeOf(123)); // false alert(Object.prototype.isPrototypeOf("123")); // false alert(Object.prototype.isPrototypeOf(false)); // false alert(Object.prototype.isPrototypeOf(new Number(123))); // true alert(Object.prototype.isPrototypeOf(new String("123"))); // true alert(Object.prototype.isPrototypeOf(new Boolean(true))); // true 可见JavaScript如同Java,对于一些基本数据类型也有原生类型的概念,这些原生类型的数据不是Object的实例。 特别要注意的是这里的"123",它是原生类型;而new String("123")就不是,这一点跟Java不一样。Java中String是没有原生类型的 引用 个人拙见,望多多指教 个人拙见,望多多指教
|
|
返回顶楼 | |
发表时间:2006-09-19
zkj_beyond 写道 Function除外 用new定义的不一定都是对象。
这句话我不理解,能否讲解一下呢? |
|
返回顶楼 | |
发表时间:2006-09-19
jianfeng008cn 写道 zkj_beyond 写道 Function除外 用new定义的不一定都是对象。
这句话我不理解,能否讲解一下呢? <SCRIPT LANGUAGE="JavaScript"> <!-- alert(typeof(new Function())) //--> </SCRIPT> |
|
返回顶楼 | |