问一个JavaScript面向对象的问题

chen_2016_web 2017-08-20 03:41:14
我是想使用面向对象实现一个功能。
创建一个队伍,队伍人数大于或等于3人,而小于或等于5人。
队伍的每个人物是一个对象,而队伍又是一个独立的对象。

就目前而言,我遇到了一个问题,就是队伍对象和人物对象联合不起来。成立队伍的必要条件是"人数大于等于3人,而小于等于5人",也就是要在队伍里面做一个判断吧,判断新创建的人物对象的个数( Person),请问怎么才能知道新创建的人物对象( Person)的个数?求解怎么做?当然上面的只是我的思维方式,如果你可以使用你自己的方法,实现相同的功能,也是行的,也许我的想法一开始就是不实际的,根本没法关联两个独立的对象。

//队伍
function Ranks(){

}
//人物
function Person(name,level){
this.name = name;
this.level = level;
}
...全文
291 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 qq_34309305 的回复:
[quote=引用 3 楼 showbo 的回复:]

    //队伍
    function Ranks() {
        this.persons = [];
    }
    Ranks.prototype.min = 3
    Ranks.prototype.max = 5;
    Ranks.prototype.isValid = function () { return this.persons.length >= this.min && this.persons.length <= this.max }
    Ranks.prototype.add = function (p) { this.persons.push(p); if (this.persons.length > this.max) alert('超员,最大' + this.max + '人') }
    //人物
    function Person(name, level) {
        this.name = name;
        this.level = level;
    }

    var r = new Ranks();
    r.add(new Person('p1', 1));
    alert(r.isValid())
    r.add(new Person('p2', 2));
    r.add(new Person('p3', 3));
    alert(r.isValid())
    r.add(new Person('p4', 4));
    r.add(new Person('p5', 5));
    r.add(new Person('p6', 6));//ERROR
推荐学习资料 JavaScript apply与call的用法及区别 javascript生成二维码
你怎么总有推荐学习资料[/quote]SEO,SEO。。
75闪光雷 2017-08-21
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:

    //队伍
    function Ranks() {
        this.persons = [];
    }
    Ranks.prototype.min = 3
    Ranks.prototype.max = 5;
    Ranks.prototype.isValid = function () { return this.persons.length >= this.min && this.persons.length <= this.max }
    Ranks.prototype.add = function (p) { this.persons.push(p); if (this.persons.length > this.max) alert('超员,最大' + this.max + '人') }
    //人物
    function Person(name, level) {
        this.name = name;
        this.level = level;
    }

    var r = new Ranks();
    r.add(new Person('p1', 1));
    alert(r.isValid())
    r.add(new Person('p2', 2));
    r.add(new Person('p3', 3));
    alert(r.isValid())
    r.add(new Person('p4', 4));
    r.add(new Person('p5', 5));
    r.add(new Person('p6', 6));//ERROR
推荐学习资料 JavaScript apply与call的用法及区别 javascript生成二维码
你怎么总有推荐学习资料
  • 打赏
  • 举报
回复

    //队伍
    function Ranks() {
        this.persons = [];
    }
    Ranks.prototype.min = 3
    Ranks.prototype.max = 5;
    Ranks.prototype.isValid = function () { return this.persons.length >= this.min && this.persons.length <= this.max }
    Ranks.prototype.add = function (p) { this.persons.push(p); if (this.persons.length > this.max) alert('超员,最大' + this.max + '人') }
    //人物
    function Person(name, level) {
        this.name = name;
        this.level = level;
    }

    var r = new Ranks();
    r.add(new Person('p1', 1));
    alert(r.isValid())
    r.add(new Person('p2', 2));
    r.add(new Person('p3', 3));
    alert(r.isValid())
    r.add(new Person('p4', 4));
    r.add(new Person('p5', 5));
    r.add(new Person('p6', 6));//ERROR


推荐学习资料
JavaScript apply与call的用法及区别
javascript生成二维码
yuqiz1981 2017-08-20
  • 打赏
  • 举报
回复
 var RanksArry = [], PeopleObj_1 = {}, PeopleObj_2 = {};
            PeopleObj_1['name'] = '李四';
            PeopleObj_1['age'] = '34';
            PeopleObj_2['name'] = '张3';
            PeopleObj_2['age'] = '35';
            RanksArry.push(PeopleObj_1);
            RanksArry.push(PeopleObj_2);
            var peoNu = RanksArry.length; 
似梦飞花 2017-08-20
  • 打赏
  • 举报
回复
Ranks里放一个数组 原型上添加 对这个数组增删改查的操作 人数就是这个数组的length

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧