大家好,今天小编来为大家解答prototype是什么这个问题,prototype词根很多人还不知道,现在让我们一起来看看吧!
本文目录
js中prototype是什么
prototype对象是实现面向对象的一个重要机制。每个函数也是一个对象,它们对应的类就是function,每个函数对象都具有一个子对象prototype。
Prototype表示了该函数的原型,prototype表示了一个类的属性的集合。当通过new来生成一个类的对象时,prototype对象的属性就会成为实例化对象的属性。
这个属性非常有用:为一个特定类声明通用的变量或者函数。
在函数内定义的变量和函数如果不对外提供接口,那么外部将无法访问到,也就是变为私有变量和私有函数。
function Obj(){
var a=0;//私有变量
var fn=function(){//私有函数}
}静态变量、函数
当定义一个函数后通过“.”为其添加的属性和函数,通过对象本身仍然可以访问得到,但是其实例却访问不到,这样的变量和函数分别被称为静态变量和静态函数,用过Java、C#的同学很好理解静态的含义。
function Obj(){
}
Obj.a=0;//静态变量
Obj.fn=function(){//静态函数
}
console.log(Obj.a);//0
console.log(typeof Obj.fn);//function
var o=new Obj();
console.log(o.a);//undefined
console.log(typeof o.fn);//undefined
js prototype是什么
prototype是一个属性,所有的函数都有,这个属性引用了一个对象,即原型对象,简称原型。所以大多数把prototype之间叫原型。
通过原型可以实现方法或者属性扩充
比如
functionA(){
}
A.prototype.show=function(){//扩充函数A的方法show
alert('1');
}
实现原型链方式的继承。
functionB(x,y){
this.y=y;
}
B.prototype=newA();//这是b也有show方法
C语言中的prototype是什么意思
prototype是一个标识符,可以是当作任何意思,也就是说它没有太固定的意思.它可以是变量名,可以是函数名,可以是宏,也可以是头文件或源文件名.
不过Prototype也是一个游戏.中文意为"原型"
js的prototype是什么
Javascript也是面向对象的语言,但它是一种基于原型Prototype的语言,而不是基于类的语言。
在javaScript创建对象一文中提到过:用构造函数创建对象存在一个问题即同一构造函数的不同实例的相同方法是不一样的,所以我们用原型把构造函数中公共的属性和方法提取出来进行封装,达到让所有实例共享的目的。
function定义的对象有一个prototype属性,prototype属性又指向了一个prototype对象。在prototype对象中有一个constructor属性,这个constructor属性同样指向一个constructor对象,而这个constructor对象恰恰就是这个function函数本身。
用伪代码表示如下:
var function{
prototype:prototype{
constructor:constructor== function
}
}函数与原型的关系
js中创建一个函数,就会自动创建一个prototype属性,这个属性指向函数的原型对象,并且原型对象会自动获得一个constructor(构造函数)属性,指向该函数。
举例:以前面的原型模式创建对象为例说明
function Person(){
}
Person.prototype.name="lxy";
Person.prototype.age=22;
Person.prototype.job="Software Engineer";
Person.prototype.sayName=function(){
alert(this.name);
}
var lxy=new Person();
lxy.sayName();
var personA=new Person();
personA.sayName();
alert(lxy.sayName()==personA.sayName());//true
实例与原型的关系
通过构造函数创建一个实例,该实例内部将包含一个属性(指针),指向构造函数的原型对象。
举例:Person构造函数的实例Person1和Person2的[[Prototype]]属性都指向Person的原型。
Note:[[Prototype]]连接是存在于实例和构造函数的原型之间,而不是存在实例与构造函数之间。
关于这个指针,ECMA-262中叫[[Prototype]],没有标准的方式访问[[Prototype]],但Firefox、Safari和Chrome在每个对象上都支持一个属性__protp__,而在其他实现中,这个属性对脚本不可见。
JavaScript里面的prototype是什么意思
prototype是原型的意思,也就是JS对象的原型,一般用来扩展原型的时候用.
prototype是一个属性,所有的函数都有,这个属性引用了一个对象.prototype对象是实现面向对象的一个重要机制.每个函数都是一个对象,它们对应的类就是function,每个函数对象都具有一个子对象prototype,prototype表示了该函数的原型.
如果你还想了解更多这方面的信息,记得收藏关注本站。