读书人

JAVASCRIPT 中对象冒充应用解决办法

发布时间: 2012-09-15 19:09:28 作者: rapoo

JAVASCRIPT 中对象冒充应用
function father (sex,name)
{

this.name=name;
this.sex=sex;


this.hao=function ()
{
alert(this.sex+","+this.name );
}
}
function child (sex,name,age)
{
this.method=father; //使FATHER成为自己的方法
// 使NAME成为自己的属性

this.method(name);
this.method(sex);
delete this.method;
this.age=age;
this.good=function () {
alert(this.age);
}
}
var fa=new father("man","he");
var ch=new child("woman","wei","26");

fa.hao();
ch.hao();
ch.good();


当同时传两中参数时有一个UNDEFINED,为什么呢?

[解决办法]
this.method(name);
this.method(sex);

这两句合为一句,不然前一次的赋值就被覆盖,改为:
this.method(sex,name);

[解决办法]

JScript code
function father (sex,name){    this.name=name;    this.sex=sex;    this.hao=function (){        alert(this.sex+","+this.name );    }}function child (sex,name,age){    this.method=father; //使FATHER成为自己的方法    // 使NAME成为自己的属性    //this.method(name);    //this.method(sex);    this.method(sex,name);    delete this.method;    this.age=age;    this.good=function () {        alert(this.age);    }}var fa=new father("man","he");var ch=new child("woman","wei","26");fa.hao();ch.hao();ch.good();
[解决办法]
伪继承是吧

this.method=father;
// 下面两行错了 你这样写 只相当于给father传递了一个参数sex
this.method(name);
this.method(sex);

看到没你的函数: function father (sex,name)
this.method(sex , name)

建议你用apply或者call方法

读书人网 >JavaScript

热点推荐