javascript - 不明白Uncaught TypeError: Cannot read property 'apply' of undefined
PHP中文网
PHP中文网 2017-04-11 10:18:52
[JavaScript讨论组]
 //这是一个构造函数
    function Set() { //大写首字母,约定写法
        this.values = {};  //集合数据保存在对象的属性里
        this.n = 0; //集合中的值的个数
        this.add.apply(this, arguments);//把所有参数都添加进这个集合
    }

    //添加原型方法add
    Set.prototype.add = function () {
        for (var i = 0; i < arguments.length; i++) {
            var val = arguments[i];
            var str = Set._v2s(val);
            if (!this.values.hasOwnProperty(str)) {
                this.values[str] = val;
                this.n++;
            }
        }
        return this; //支持链式方法调用,因为返回的是一个实例
    };
     Set._v2s = function (val) {
            switch (val){
                case undefined:
                    return 'u';
                case null:
                    return 'n';
                case true:
                    return 't';
                case false:
                    return 'f';
                default: switch (typeof val){
                    case 'number':
                        return '#'+ val;
                    case 'string':
                        return '"' + val;
                    default:
                        return '@' + objectId(val);
                }
                function objectId(o) {
                    var prop = "|**objectid**|";
                    if(!o.hasOwnProperty(prop)){
                        o[prop] = Set._v2s.next++;
                    }
                    return o[prop];
                }
            }
        };
    var test = [1,2,3];
    Set(test);

一直报错:Uncaught TypeError: Cannot read property 'apply' of undefined

根据我的理解,apply不需要定义的,系统的方法,不明白为什么会一直报这个错误。谢谢。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
PHPz

你写个构造器倒是实例化啊。。。。。。你不实例化这个this.add.apply(this, arguments);里面的this是准备指向谁?

PHP中文网

new Set(test)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号