账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    引入一个js文件报错TypeError: Cannot set property 'extend' of undefined
    67
    0
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
    </head>
    <body>
    
    <script src="./aid.js"></script>
    <script>
        function abc(){
            console.log('我是小abc')
        }
    
        var object1 = {
            apple: 0,
            banana: { weight: 52, price: 100 },
            cherry: 97
        };
        var object2 = {
            banana: { price: 200 },
            durian: 100
        };
    
        var object = Aid.extend({}, object1, object2);
    </script>
    
    
    
    </body>
    </html>
    
    var Aid = function() {
        var isFunctionCharacter = function(obj)
        {
            try {
                if(typeof obj === "function") { //是函数    其中 FunName 为函数名称
                    console.log("is function");
                } else { //不是函数
                    console.log("not is function");
    
                }
            } catch(e) {}
        }
        return { isFunction : isFunctionCharacter };
    }();
    
    Aid.fn = Aid.prototype
    
    Aid.extend = Aid.fn.extend = function() {
        var options, name, src, copy, copyIsArray, clone,
            target = arguments[0] || {}, // 默认第0个参数为目标参数
            i = 1,    // i表示从第几个参数凯斯想目标参数进行合并,默认从第1个参数开始向第0个参数进行合并
            length = arguments.length,
            deep = false;  // 默认为浅度拷贝
    
        // 判断第0个参数的类型,若第0个参数是boolean类型,则获取其为true还是false
        // 同时将第1个参数作为目标参数,i从当前目标参数的下一个
        // 处理深度拷贝情况
        if (typeof target === 'boolean') {
            deep = target;
    
            // Skip the boolean and the target
            target = arguments[i] || {};
            i++;
        }
    
    
        // 判断目标参数的类型,若目标参数既不是object类型,也不是function类型,则为目标参数重新赋值
        if (typeof target !== 'object' && !Aid.isFunction(target)) {
            target = {};
        }
    }
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 念旧回不到曾经 普通会员 1楼

      这个错误通常是因为你在尝试访问一个对象的方法或属性,但是这个对象并没有这个方法或属性。例如,如果你有一个对象:

      javascript let obj = {}; obj.extend = function() { console.log('function extended'); };

      然后你尝试访问obj.extend,你会得到这个错误:

      javascript TypeError: Cannot set property 'extend' of undefined

      这是因为obj是undefined,extend方法也没有被定义。

      解决这个问题的方法是确保你在访问obj.extend之前,obj已经被正确地初始化和赋值。例如,你可以这样做:

      javascript let obj = {}; obj.extend = function() { console.log('function extended'); };

      或者你可以将obj.extend添加到obj的属性中:

      javascript let obj = {}; obj.extend = function() { console.log('function extended'); obj.extend = function() { console.log('function extended'); }; };

      这样,当你访问obj.extend时,它将被定义,并且在obj的属性中被引用。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部