JavaScript里面的prototype是什么意思?怎么用?能举个例子吗?

 我来答
百度网友5e99258cf
推荐于2017-11-26 · TA获得超过1687个赞
知道大有可为答主
回答量:1299
采纳率:71%
帮助的人:683万
展开全部
翻译一下是原型的意思~也就是说是JS对象的原型,一般用来扩展原型的时候用~或者用到原型链式的继承上去~举个例子:
声明一个对象var abc=function(){
this.name="小明";

}
abc现在是一个对象(函数也是对象的一种),然后我们扩展一下这个对象,给它一个方法:
abc.prototype.say=function(){
alert(this.name);

}
这样就扩展了原来的函数对象了~是用的时候直接var a=new abc();
a.say();就会弹出小明来了。这么做的好处是不会额外产生内存,所有实例化后的对象都会从原型上继承这个方法。
至于原型链继承的话你可以去搜一下我就不举例子了~不懂的话可以再问我~
如是我之闻
2014-08-04 · TA获得超过1237个赞
知道小有建树答主
回答量:1207
采纳率:57%
帮助的人:813万
展开全部

javascript 是一种 prototype based programming 的语言, 有别于(java,C++)的 class based programming 继承模式。


javascript语言特点:

函数是first class object, 也就是说函数与对象具有相同的语言地位

没有类,只有对象

函数也是一种对象,所谓的函数对象

对象是按引用来传递的


javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性:返回对象类型原型的引用。

function A(a, b, c)
{
return a*b*c;
}
console.log(A.length);
console.log(typeof A.constructor);
console.log(typeof A.call);
console.log(typeof A.apply);
console.log(typeof A.prototype);

//结果
/*3 
function 
function 
function 
object */

在javascript中对于任何函数都拥有这5大属性。由于prototype是一个对象,所有可以添加属性和方法,用来实现继承和其他维度的扩展。

function Person(name, age)
{
this.name = name;
this.age = age;
this.show = function(){
var res = "我是 " + this.name + "  年龄 " + this.age +".";
return res;
};
}
// 给person添加几个属性
Person.prototype.gender = "女";
Person.prototype.getSex = function(){
return this.gender;
};

//定义学生对象
function Student(num){
this.num=num;
}

Student.prototype=new Person("alice",23);
var s=new Student(123434);
console.log(s.show());

//通过上看出

当查找一个对象的属性/方法时,JavaScript 会向上遍历原型链,直到找到给定名称的属性为止。


到查找到达原型链的顶部 - 也就是 Object.prototype - 但是仍然没有找到指定的属性,就会返回 undefined


这里做一个简单的介绍,如果要完全的搞清楚,你可以看看《Javascript权威之南》《javascript高级编程》《javascript精粹》

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cxbvxvcbbvcxb
2014-08-04 · TA获得超过144个赞
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:62.6万
展开全部
prototype是js的难点之一,要真正理解需要花点功夫,
字面意思叫原型,可用于模拟类的继承
如c#通过继承链寻找成员,而js通过原型链来找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式