javascript中Array.prototype指向的对象是什么

maclee2009 2012-10-12 10:54:19
如题
...全文
1129 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不是讲sayB添加到B.prototype指向的A对象上吗?
应该不是吧
B.prototype 这个prototype是prototype属性,指向一个prototype对象
看这里
http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930548.html
maclee2009 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

不是,slice是array的原型上的方法,下面这个个人见解
比如
类A:
funtion A(){
}
A.prototype.sayA=funct(){};
类B:
function B()
{
}
//继承于A
B.prototype=new A();

这样new B() 的对象的sayA() 调用的是继承于A的方法
同样也可以再定义B的
……
[/Quote]

这个我知道,prototype也是一个对象啊 也是一个盛放key-value的容器,就拿你这个例子来说 B的prototype是A的实例对象,在B的原型对象上添加sayB方法,不是讲sayB添加到B.prototype指向的A对象上吗?
  • 打赏
  • 举报
回复
不是,slice是array的原型上的方法,下面这个个人见解
比如
类A:
funtion A(){
}
A.prototype.sayA=funct(){};
类B:
function B()
{
}
//继承于A
B.prototype=new A();

这样new B() 的对象的sayA() 调用的是继承于A的方法
同样也可以再定义B的
B.prototype.sayB=function(){
}
slice和这里的sayB差不多
泡泡鱼_ 2012-10-12
  • 打赏
  • 举报
回复
var arr=["1","2","3"];
alert(arr.slice(0,1));//1
alert(Array.prototype.slice.call(arr,2));//3


Lz到底想问的是哪个类型的?

两个都一样,调用时,都是指向调用的对象arr(它是一个Array)
maclee2009 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

object
[/Quote]

那么就是说 Array.prototype.slice()方法是附加到object对象上吗,
泡泡鱼_ 2012-10-12
  • 打赏
  • 举报
回复
就是调用对象是一个Array,对Array类型增加了一个原型写法的函数,一般写一些扩展时经常用。比如判断一个元素是否在数组中之类的
Array.prototype.inArray=function(value){
for(var i=0;i<this.length;i++){
if (this[i] == value){
return true;
}
}
return false
};
var arr=["1","2","3"];
//以下同调用方式,在inArray函数中,使用this即可得到arr
arr.inArray("1");
  • 打赏
  • 举报
回复
object

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧