prototype和constructor两个都什么意思?
<html><head><title>修改对象原型</title><scriptlanguage="javascript"type="text/javascript"><...
<html>
<head>
<title>修改对象原型</title>
<script language="javascript" type="text/javascript">
<!--
function pen(color,price)
{
this.color = color;
this.price = price;
}
pen.prototype.name = "钢笔";
var myPen = new pen("蓝色",30);
document.write("笔的颜色为:" + myPen.color +"<br>");
document.write("笔的价格为:" + myPen.price +"<br>");
document.write("笔的名称为:" + myPen.name +"<br>");
document.write("笔的名称为:" + myPen.constructor.prototype.name +"<br><br>");
-->
</script>
</head>
<body>
</body>
</html> 展开
<head>
<title>修改对象原型</title>
<script language="javascript" type="text/javascript">
<!--
function pen(color,price)
{
this.color = color;
this.price = price;
}
pen.prototype.name = "钢笔";
var myPen = new pen("蓝色",30);
document.write("笔的颜色为:" + myPen.color +"<br>");
document.write("笔的价格为:" + myPen.price +"<br>");
document.write("笔的名称为:" + myPen.name +"<br>");
document.write("笔的名称为:" + myPen.constructor.prototype.name +"<br><br>");
-->
</script>
</head>
<body>
</body>
</html> 展开
1个回答
展开全部
我们来看一下javascript中的原型:
javascript原型是一个对象。
javascript中所有的构造函数都有一个属性,叫prototype,这个属性存放的就是原型对象;访问这个属性通过:函数名.prototype ,从而可以访问到这个原型对象,也可以为这个原型赋值。在原型对象中有一个属性叫constructor,这个constructor指向函数本身。我偿可以访问到原型中的这个属性:函数名.prototype.constructor;我们可以为原型对象添加属性并赋值:函数名.prototype.属性名=值;为函数原型添加的属性,都会成为构造函数的属性,从而成为对象的属性。既然对象具有了原型内的属性,说明对象中的这些属性是从原型中继承来的。所以javascript是基于原型的继承的。
当读取对象的属性时,会先查找对象的常规属性,如果常规属性中没有,则去查找原型中的属性。当给对象的属性赋值时,javascript不会使用原型对象。即:如果对象的常规属性中有此属性,则直接赋值vkjsfq此属性而在原型对象中存在此属性,那么,对象会在自己的常规属性中添加一个与这个原型对象中同名的属性。而不去修改原型对象属性的值。注意:这时再读取这个属性时,读取的是常规属性中的值,原型对象中的这个属性值已经读取不到了,已经被对象中的常规属性给覆盖了。
javascript原型是一个对象。
javascript中所有的构造函数都有一个属性,叫prototype,这个属性存放的就是原型对象;访问这个属性通过:函数名.prototype ,从而可以访问到这个原型对象,也可以为这个原型赋值。在原型对象中有一个属性叫constructor,这个constructor指向函数本身。我偿可以访问到原型中的这个属性:函数名.prototype.constructor;我们可以为原型对象添加属性并赋值:函数名.prototype.属性名=值;为函数原型添加的属性,都会成为构造函数的属性,从而成为对象的属性。既然对象具有了原型内的属性,说明对象中的这些属性是从原型中继承来的。所以javascript是基于原型的继承的。
当读取对象的属性时,会先查找对象的常规属性,如果常规属性中没有,则去查找原型中的属性。当给对象的属性赋值时,javascript不会使用原型对象。即:如果对象的常规属性中有此属性,则直接赋值vkjsfq此属性而在原型对象中存在此属性,那么,对象会在自己的常规属性中添加一个与这个原型对象中同名的属性。而不去修改原型对象属性的值。注意:这时再读取这个属性时,读取的是常规属性中的值,原型对象中的这个属性值已经读取不到了,已经被对象中的常规属性给覆盖了。
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲、导入文档内容”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询