在js中,每个对象都有一个prototype属性:返回对象类型原型的引用。很拗口!习语“依葫芦画瓢”,这里的葫芦就是原型,那么“瓢.prototype” 返回的就是葫芦,或者“瓢.prototype= new 葫芦()”。
prototype的用途:
继承
有一个对象--子类:
function 子类() ...{
this.lastname = "Samuel";
}有一个对象--父类:
function 父类() ...{
this.firstname = "Shen";
}现在子类是有名无姓,父类是有姓无名,如果子类要有名有姓的话,只要说明--子类的原型是父类--就可以了,即子类继承自父类:
子类.prototype = new 父类();
至此,子类就不再是有名无姓了。
alert(子类.firstname + " " + 子类.lastname); //Samuel Shen
牵一发而动全身
既然prototype返回的是原型的引用,那么如果改变原型的话,所有继承自该原型的对象都将受到影响。
function Point(x,y)
...{
this.x = x;
this.y = y;
}
var p1 = new Point(1,2);
var p2 = new Point(3,4);
Point.prototype.z = 0; //动态为Point的原型添加了属性
alert(p1.z); //0
alert(p2.z); //0
分享到:
相关推荐
JS中所有的东西都是对象,每个对象都有prototype这个属性,这个属性是一个对象(object) 2. JS中所有的东西都由Object衍生而来, 即所有东西原型链的终点指向Object.prototype 3. JS中构造函数和实例(对象)之间有...
12个HTML格式文件,有原型链、JS封装性、JS多态、JS继承、JS私有属性等12个有关js-prototype的HTML文件
任何元素都可以具有“数据模块”属性,该属性告知该元素将使用哪个模块,这是一个简单JavaScript函数,可以接受该元素并使用JavaScript添加自定义行为。 模块不过是遵循此描述的功能: export default function ...
NULL 博文链接:https://jinhailion.iteye.com/blog/1530966
我猜一般用过JavaScript的人都看见过或者用过对象的prototype属性。这是个好东西,它可以向其原型中动态添加功能(属性和方法),但该对象不能被赋予不同的原型。然而,用户定义的对象可以被赋给新的原型。详细介绍:...
一、什么是JavaScript中对象的prototype属性 JavaScript中对象的prototype属性,是用来返回对象类型原型的引用的。我们使用prototype属性提供对象的类的一组基本功能。并且对象的新实例会”继承”赋予该对象原型的...
每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型...
你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在。你可以看看下面的例子: Example PT1 代码如下:function Test(){}alert(Test.prototype); // 输出 “Object” 给prototype添加...
资料:prototype 属性 返回对象类型原型的引用。 objectName.prototype objectName 参数是对象的名称。 说明 用 prototype 属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。 例如,...
prototype属性本质上还是一个JavaScript对象。 并且每个函数都有一个默认的prototype属性。 如果这个函数被用在创建自定义对象的场景中,我们称这个函数为构造函数。 比如下面一个简单的场景: 代码如下: // 构造...
JavaScript中的prototype(原型)属性研究
JScript中对象的prototype属性,是用来返回对象类型原型的引用的。我们使用prototype属性提供对象的类的一组基本功能。
prototype是javascript中笔记难理解的一部分内容,下面通过几个关键知识点给大家讲解js中的prototype,对js中的prototype相关知识感兴趣的朋友一起学习吧
本文实例讲述了JavaScript通过prototype给对象定义属性的用法。分享给大家供大家参考。具体分析如下: 下面的JS代码定义了movie对象。在使用对象的过程中又通过prototype给对象添加了isComedy属性,调用的时候直接...
在进入正文之前,我得先说说我认识js的prototype这个东西的曲折过程。 百度js的prototype的文章,先看看,W3School关于prototype的介绍: 你觉得这概念适合定义js的prototype这个东西吗?你是否也认为prototype是...
本文实例讲述了JavaScript使用prototype属性实现继承操作。分享给大家供大家参考,具体如下: JS并没有显式的继承语法,在JS中所有的对象都是Object的子类实现, 因而对象之间是平等关系. 尽管如此我们可以通过特殊的...
Javascript中关于prototype属性实现继承的原理图
这是一个比较特殊的属性,Javascript中的继承一般都依赖这属性实现。 在Javascript中,一切都是对象,字符串是对象,数组是对象,变量是对象,函数也是对象,所以才会允许[‘a’,’b’,’c’].push(‘d’);这样的...