js中的prototype(js中的proto)

http://www.itjxue.com  2023-01-27 13:03  来源:未知  点击次数: 

Js原型(prototype)01

1.原型是 function对象的一个属性,是构造函数构造出对象的公有祖先,而原型本身也是一个对象。

2.从原型的概念出发,我们可以用构造函数构造出的对象提取原型上的属性。

3.因为原型也是一个对象,所以原型本身对自己的属性有增删改查的权利。

4.对象如何知道自己的原型是谁,可以通过对象中的_ proto_ 属性查看,_ proto_ 属性存的就是对象的原型,他是作为对象与原型之间的连接。

5.构造函数构造的对象如何查看是谁构造出自己的,可以通过constructor属性

首先从原型的定义开始解释:

原型是function对象的一个属性,这句话如何理解?

1.function函数其实就是一个对象,当你构造出一个函数时,这个函数对象就有了自己隐式的属性,prototype就是其中的一个属性。

那么先构造出一个函数,在控制台查看,函数对象是否有prototype,并且prototype是否也是一个对象。

我们在控制台中给father的prototype属性添加name属性并赋值,看看是否有效?

给prototype添加属性后,并可以输出name的值。那么也是可以给prototype添加方法的。

给prototype添加say方法实现输出自己的name,执行say(),的确输出了'haha'

2.我们如何理解,prototype是构造函数构造出对象的公有祖先?

首先当构造出函数时prototype就成为了这个函数的属性,并且prototype也可以添加属性和方法,而构造函数构造出的对象能继承构造函数中的方法,且这个对象自身也能添加属性和方法?

那么问题来了?

当我查看对象的name属性时,对象并没有这个属性,那他就会自动去构造出自己的函数中去找是否有这个属性,那当构造函数也没这个属性时,他就会去自己的原型上查找是否有这个属性,如果原型上存在name属性,对象就会获取到这个属性并输出。

而这个获取到原型属性的过程,其实就是一种继承的方式。

举例:

1.prototype是function对象的一个属性;

2.prototype是构造函数构造出对象的公有祖先;

3.prototype也是一个对象。

从总结的第三点可以知道,prototype可以拥有自己的属性和方法,并有权进行增删改查,那么接下来展示prototype如何进行增删改查。

对Mom的prototype属性进行操作。

增:

给出你想要添加的属性,并赋值。

删:

delete

所以prototype对象的增删改查和普通对象的用法相同。

这里还需注意,prototype上的属性只能由自身操作,对象从prototype上获取到的属性进行操作后,并不会影响到prototype。

接下来解释对象的_ proto_ 属性(前后分别是两个_)

_ proto_ 属性里存的是对象的prototype

举例:

接下来解释constructor属性:

对象可以通过该属性查看构造出自己的函数

总结:

prototype是function对象的一个属性,是构造函数构造出的对象的公有祖先,他本身也是一个对象,所以他可以有自己的属性和方法,并对其进行增删改查的操作,对象没有权利修改prototype上的属性和方法。对象可以通过自己的_ proto_ 查看他的prototype,通过constructor查看构造出自己的函数。

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

翻译一下是原型的意思~也就是说是JS对象的原型,一般用来扩展原型的时候用~或者用到原型链式的继承上去~举个例子:

声明一个对象var abc=function(){

this.name="小明";

}

abc现在是一个对象(函数也是对象的一种),然后我们扩展一下这个对象,给它一个方法:

abc.prototype.say=function(){

alert(this.name);

}

这样就扩展了原来的函数对象了~是用的时候直接var a=new abc();

a.say();就会弹出小明来了。这么做的好处是不会额外产生内存,所有实例化后的对象都会从原型上继承这个方法。

至于原型链继承的话你可以去搜一下我就不举例子了~不懂的话可以再问我~

js中的prototype有什么作用?

prototype对象是实现面向对象的一个重要机制。每个函数也是一个对象,它们对应的类就是function,每个函数对象都具有一个子对象prototype。

Prototype 表示了该函数的原型,prototype表示了一个类的属性的集合。当通过new来生成一个类的对象时,prototype对象的属性就会成为实例化对象的属性。

下面以一个例子来介绍prototype的应用,如图:

扩展资料

prototype给String类封装一个“日期验证”的代码

String.prototype.isDate = function(){

var regex = new RegExp("^[\d]([-|/])[\d]{1,2}([-|/])[\d]{1,2}$");

console.log(this);

return regex.exec(this);

}

var strValue = "12512412";

alert(strValue.isDate());

参考资料:百度百科 prototype

js prototype 哪些对象

1、

prototype对象是实现面向对象的一个重要机制。每个函数也是一个对象,它们对应的类就是

function,每个函数对象都具有一个子对象prototype。Prototype 表示了该函数的原型,

prototype表示了一个类的属性的集合。当通过new来生成一个类的对象时,prototype对象的属

性就会成为实例化对象的属性。

下面以一个例子来介绍prototype的应用,代码如下:

script language="javascript"

//定义一个空类

function HelloClass(){

}

//对类的prototype对象进行修改,增加方法method

HelloClass.prototype.method=function(){

alert("prototype测试");

}

var obj=new HelloClass(); //创建类HelloClass的实例

obj.method(); //调用obj的method方法

/script

当用new创建一个对象时,prototype对象的属性将自动赋给所创建的对象,例如:

script language="javascript"

//定义一个只有一个属性的类

function HelloClass(){

this.name="javakc";

}

//使用函数的prototype属性给类定义新属性

HelloClass.prototype.showName=function(){

alert(this.name);

}

var obj=new HelloClass(); //创建类HelloClass的一个实例

//调用通过prototype原型对象定义的showName方法

obj.showName();

/script

56

2、利用prototype实现继承

script language="javascript"

function HelloClass(){

//构造方法

}

function HelloSubClass(){

//构造方法

}

HelloSubClass.prototype=HelloClass.prototype;

HelloSubClass.prototype.Propertys="name";

HelloSubClass.prototype.subMethods=function(){

//方法实现代码

alert("in Methods");

}

var obj=new HelloSubClass();

obj.subMethods();

/script

在以上的代码中,首先是HelloSubClass具有了和HelloClass一样的prototype,如果不考

虑构造方法,则两个类是等价的。随后,又通过prototype给HelloSubClass赋予了额外的属性和方法

所以HelloSubClass是在HelloClass的基础上增加了新的属性和方法,从而实现了类的继承。

js prototype是什么

prototype是一个属性,所有的函数都有,这个属性引用了一个对象,即原型对象,简称原型。所以大多数把prototype之间叫原型。

通过原型可以实现方法或者属性扩充

比如

function?A(){

}

A.prototype.show=function(){//扩充函数A的方法show

???alert('1');

}

实现原型链方式的继承。

function?B(x,y){

?this.y?=?y;

?}

?B.prototype?=?new?A();//这是b也有show方法

JavaScript里面的prototype是什么意思?

prototype是原型的意思,也就是JS对象的原型,一般用来扩展原型的时候用.

prototype是一个属性,所有的函数都有,这个属性引用了一个对象.prototype对象是实现面向对象的一个重要机制.每个函数都是一个对象,它们对应的类就是function,每个函数对象都具有一个子对象prototype,prototype表示了该函数的原型.

(责任编辑:IT教学网)

更多

推荐Frontpage教程文章