将用户定义的对象作为参数发送并存储在数组中并获取所需的值

时间:2014-08-19 11:30:34

标签: javascript

这里book构造函数创建书籍实例,person构造函数创建新作者实例。然后由person创建的instace作为参数发送到book构造函数并使用 this.author ..但我很难提醒故事书实例的作者全名的价值。我可以获得我想要的价值。因为我已经将一个对象实例发送给另一个构造函数,所以如何操纵这个关键字。我的意思是 this.author有一个对象whis有两个属性this.firstname和this.lastname

所以我可以说this.author>[{this.lastname;this.firstname}] 那么如何从一堆this. ??

中提醒一个值

<html>
<body>
<script>
function Person(lastname,firstname){
  this.lastname=lastname;
  this.firstname=firstname;
}
var mrX=new Person("X","mr");

function Book(name,price,page){
    this.name=name;
    this.price=price;
    this.page=page;
    this.author=new Array(arguments.length-3);
    for(i=0;i<arguments.length-3;i++){
        this.author[i]=arguments[i+3];

    }
}
var storyBook=new Book('vuter golpo','200','60',mrX);
alert(this.author.firstname);
</script>
</body>
</html>

1 个答案:

答案 0 :(得分:2)

书籍的.author属性包含一个数组。您需要使用storyBook.author[0].firstNamestoryBook.author[0].lastName - storyBook.author[0] === mrX

您不能使用this来获取storyBook实例,this keyword仅在方法和构造函数中有意义。