function people(){
this.name = new Name();
this.age = "17";
}function Name(){ }Name.prototype.printf(){ //在这里.如何能引用到 people的实例对象
//如 age 属性值.
}
this.name = new Name();
this.age = "17";
}function Name(){ }Name.prototype.printf(){ //在这里.如何能引用到 people的实例对象
//如 age 属性值.
}
<script type="text/javascript">
<!--
function people(){
this.name = new Name();
this.age = "17";
}function Name(){ }Name.prototype = new people();
Name.prototype.constructor = Name;
Name.prototype.printf = function(){
alert(this.age)
}var n = new Name();
var o = new people();
n.printf();//-->
</script>
<script type="text/javascript">
<!--
function people(){
this.name = new Name();
this.age = "17";
}function Name(){ }Name.prototype.printf = function(){
people.call(this);
alert(this.age);
}var n = new Name();
n.printf();//-->
</script>
.比方说一个alert().
一个对象要具有另一个对象的属性,可以想象到继承.
所以#1给你的就是JS的原型继承
Name.prototype = new people();//将people对象实例赋给Name的原型,这样Name就具有了people的属性了
而#3是通过call类似对象冒充.
people.call(this);// 正常this是指当前对象Name但通过people.call(this).就将this的指针引用指向people了
// 所以alert(this.age)//这里的this就相当于people具体楼主可以百度:
1.javascript原型继承
2.javascript call和apply
宗旨其实就是继承
<script type="text/javascript">
<!--
// 类抄写
var Extend = function(destination, source){
for(var pro in source){
destination[pro] = source[pro];
}
return destination;
}
function people(){
this.age = "17";
}function Name(){ }
Extend(Name.prototype,new people())Name.prototype.printf = function(){
alert(this.age);
}var n = new Name();
n.printf();//-->
</script>