最近在学习javascript时,碰到很多面向对象js的问题(.net)
请各位高手赐教 `-`
1.Object.extend(Element,{
getWidth:function(elem)
{
//code
}
}
)
extend是继承么?如果是继承是不是给Element添加新的方法?Object确切的是什么东西?Element(红色的)这个又是什么东东??2.Array.prototype.removeDuplicates =function(){//code}
Array不是对象么??怎么对象还可以象类一样给它添加方法???3.prototype是什么东东?有什么作用?用prototype给类定义方法属性,和不用prototype有什么区别呢??
一口气说了一堆,打字都都打了好久,望各位高手不要吝惜短短的几分钟,多多指教.
如果觉得分少了,另开帖给分.
请各位高手赐教 `-`
1.Object.extend(Element,{
getWidth:function(elem)
{
//code
}
}
)
extend是继承么?如果是继承是不是给Element添加新的方法?Object确切的是什么东西?Element(红色的)这个又是什么东东??2.Array.prototype.removeDuplicates =function(){//code}
Array不是对象么??怎么对象还可以象类一样给它添加方法???3.prototype是什么东东?有什么作用?用prototype给类定义方法属性,和不用prototype有什么区别呢??
一口气说了一堆,打字都都打了好久,望各位高手不要吝惜短短的几分钟,多多指教.
如果觉得分少了,另开帖给分.
1.这个代码明显是基于prototype.js库的
prototype.js库封装了一系列方法,可以使javascript代码看起来更优美,更接近面向对象的编程习惯楼主要是想下载prototype.js库的话只需要搜索一下就行了2.javascript是通过prototype来实现继承的prototype声明了附加在对象原型上的方法
Array本省并不包含removeDuplicates 方法
但是通过Array.prototype.removeDuplicates =function(){}这样的声明可以将方法removeDuplicates 附加到Array的javascript原型上
相当于扩展了Array的方法3.prototype主要是javascript原型定义的一种为原型对象附加方法的关键字
通过prototype关键字可以为任意的对象原型附件任意多的方法,实现类型面向对象的封装和继承
{}Table.prototype.AddRow(row)//为Table对象附加了一个方法,方法名叫AddRow,可以接收一个参数,参数名叫row
{}使用方法:var tb = new Table();//实例化一个Table对象
tb.AddRow("row");//调用tb实例的AddRow方法
看到这句恍惚明白了一点,刚才看了msdnWebCast的Ajax深入浅出,提到了prototype链,是不是就把removeDuplicates方法加到了Array的prototype中?
可以这样理解事实上就是为Array原型增加了一个removeDuplicates方法,Array对象的任何实例都可以调用这个方法
越来越感觉人说的就是比书说的好啊.
恍惚已经明白些了,但是好像又没明白.
但是一下思维转换不过来,怎么用funcation就定义类了,,
现在知道是知道了,但是总觉得不舒服,,
看的时候觉得懂了,,过一会又忘了,,应该写点代码,,
呵呵,确实一开始不太习惯还有一种方式啊var Ajax = new Object();//定义namespace : AjaxAjax.prototype=
{
initialize:function(){},//Ajax的方法1
dispose:function(){}//Ajax的方法2
}var ajax = new Ajax.initialize();//生成Ajax的对象这也是一种定义方式啊,呵呵javascript是很值得研究的
webcast上这么写过,,,注册命名空间