为什么没有实现继承?

var CheckObject = function(){};
CheckObject.checkName = function(){
    
}
CheckObject.checkEmail = function(){

}
CheckObject.checkPassword = function(){

}
var a = CheckObject();
console.log(window);
//控制台中结果
//checkObject:function(){}包含checkName,checkEmail和checkPassword方法。
//a:undefined

求问大神为什么没有实现继承?
阅读 1k
评论
    5 个回答

    a是checkObject这个函数返回的值,既然没有显式返回的话就是undefined的啦。此外你应该区分构造函数和调用普通函数的区别……

      • 277

      因为CheckObject没有指定return值,默认返回undefined

        var a = new CheckObject();

          var CheckObject = {}; //想让下面的方法继承,父级是一个对象才行

          CheckObject.checkName = function(){
          }

          CheckObject.checkEmail = function(){
          }

          CheckObject.checkPassword = function(){
          }

          return CheckObject

            可以这么写继承:

            var CheckObject = function (name, age) {
                var _age = age;
                this.name = name;
            };
            CheckObject.prototype.checkName = function () {
            
            }
            CheckObject.prototype.checkEmail = function () {
                console.info("checkEmail");
            }
            CheckObject.prototype.checkPassword = function () {
            
            }
            var a = new CheckObject();
            a.checkEmail()

            这样的话所有的CheckObject实例都可以共享公共方法啦。

              撰写回答

              登录后参与交流、获取后续更新提醒

              相似问题
              推荐文章