Maison > Questions et réponses > le corps du texte
function student (){
prototype
}
prototype在构造函数
里面是对象还是属性,一会儿说属性,一会儿说对象;
还是说prototype对象中有一个prototype属性
;
还有为什么叫student.prototype
这个东西是一个对象;
prototype指向student.prototype 那么prototype是可以理解引用
吗?
如果prototype是对象,那么对象prototype
能指向对象student.prototype
;
PHPz2017-04-11 11:55:04
prototype是属性,但是属性的值可以为对象
就比如
var obj = {a:{}};
a是obj对象的一个属性,但是a也指向一个对象
怪我咯2017-04-11 11:55:04
一个变量引用(指向)一个对象不难理解吧?
var a = {};
var obj = { objProperty: a };
我现在说obj的objProperty属性是个对象不能反驳吧?
那我说objProperty这个对象也没错吧?
至于prototype里又有prototype, 用对象的原型链, 就可以做到.大致代码如下:
function Person(){
this.name = "tinycolder";
}
Person.prototype.age = 22;
var p1 = new Person();
p1.prototype = Person.prototype;
function Man(){
}
Man.prototype = p1;
alert(Man.prototype.prototype.age);//22
//参考
var p2 = new Man();
alert(p2.name);//tinycolder
具体请参考, 对象的原型链继承.
好好看书, 理解不了的概念就停下来慢慢分析咀嚼, 不要失乱了学习的心境.
阿神2017-04-11 11:55:04
书上看到的: 我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是 包含可以由特定类型的所有实例共享 的属性和方法。如果按照字面意思来理解,那么prototype就是通过 调用构造函数而创建的那个对象实例 的原型对象。
伊谢尔伦2017-04-11 11:55:04
prototype是构造函数的属性,函数实例化时,系统会自动加上这句:Function.prototype.constructor=Function,咱们从函数角度看,pro就是他一个属性,但是他自身又是一个对象,他有自己的属性,自身还有一个隐藏属性__proto__,指向了伟大的Object的原型对象,这就是为什么js里面的对象默认挂载toString这样默认方法,原型链,可以当作Java的继承理解即可,每当实例化函数的属性,就会产生对应的实例原型对象,三者关系都是彼此联系的。