Javascript 练习

在Array()构造器以及相关的数组文本标识法都不存在的情况下,自定义一个类似的MyArray()构造器,并令其通过以下测试:

var a = new MyArray(1,2,3,"test");
a.toString();
//"1,2,3,test"

a.length;
//4

a[a.length-1];
//"test"

a.push("boo");
//5

a.toString();
//"1,2,3,test,boo"

a.pop();
//boo

a.toString();
//"1,2,3,test"

a.join(",");
//"1,2,3,test"

a.join(" isn\'t");
//1 isn't 2 isn't 3 isn't test"
function MyArray() {
    this.length = arguments.length;

    for (var i=0; i<this.length; i++){
        this[i] = arguments[i];
    }

    this.toString = function () {
        var string = "";
        for (var i=0; i<this.length; i++){
            string += string ? (", "+this[i]) : this[i];
        }
        return string;
    };

    this.push = function (elem) {
        this[this.length] = elem;
        this.length++;
    };

    this.pop = function () {
        return this[--this.length];
    };

    this.join = function (sep) {
        var string = "";
        for(var i=0; i<this.length; i++){
            string += this[i] + ((i==this.length-1) ? "": sep);
        }
        return string;
    };
}

var a = new MyArray(1, 2, 3, "test");

console.log(a.toString());
console.log(a.length);
console.log(a[a.length-1]);
a.push("boo");
console.log(a.toString());
a.pop();
console.log(a.toString());
console.log(a.join(","));
console.log(a.join(" isn\'t "));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,850评论 19 139
  • 理解 Prototype.js的bind()函数 fun.bind(this,arg1,arg2)bind()方法...
    荔枝淼淼阅读 1,396评论 0 0
  • 类型系统 1、以下表达式返回的值是多少? 答案: 2 2、type([])的结果是? A “Object” B “...
    ddai_Q阅读 9,493评论 1 7
  • 感赏孩子住校 已经坚持5天了 这周要住8天 对孩子来说是 从来没有过的 ,感赏孩子能跟老师搞好关系 感赏 孩子...
    苦茶_09e4阅读 1,382评论 3 3
  • 啦啦啦……啦啦啦……我是快乐的小行家…… 对啊,我今天非常开心,因为学校下午举办游园活动啦! 早上,老师讲完课...
    育心豆子阅读 1,625评论 1 1

友情链接更多精彩内容