prototype 属性到底有什么作用
prototype 属性
返回对象类型原型的引用。
objectName.prototype
objectName 参数是对象的名称。
说明
用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。
用起来是会用
但就是不明白里面的道理
------解决方案--------------------某个函数(类)的prototype属性会自动赋给这个函数(类)的实例(对象)。如下面的例子:
function ClassA(){
this.attr1 = 'attribute 1 ';
}
ClassA.prototype = {
this.attr2 = 'attribute 2 ';
};
var obj = new ClassA();
alert(obj.attr1 + ": " + obj.attr2);
------解决方案--------------------写习惯了,写错了,是这样的:
function ClassA(){
this.attr1 = 'attribute 1 ';
}
ClassA.prototype = {
attr2 : 'attribute 2 '
};
var obj = new ClassA();
alert(obj.attr1 + ": " + obj.attr2);
------解决方案--------------------上面两种方式单独运行结果是一样的.
其实没有什么不同.
由于ClassA.prototype是一个对象,所以可以给它添加属性.如:
ClassA.prototype.attr2= 'attribute 2 ';
由于ClassA.prototype是一个对象,所以也可以直接给整个对象复制.如:
ClassA.prototype = {attr2 : 'attribute 2 '};
------解决方案--------------------不懂
------解决方案-------------------- <script>
function Person(name,age){
this.Name=name;
this.Age=age;
}
Person.prototype.SayHello=function(){
alert( "Hello,my name is "+this.Name+ ",I am "+this.Age+ " years old. ");
}
var Lily=new Person( "Lily ",19);
var Tom=new Person( "Tom ",21);
Lily.SayHello();
Tom.SayHello();
</script>