为什么没有实现继承?

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

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

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

因为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实例都可以共享公共方法啦。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题