function checkName(){
// 验证姓名
}
var checkName = function(){
// 验证姓名
}
var checkObject= {
checkName: function(){
// 验证姓名
}
}
var checkObject = function(){}
checkObject.checkName = function(){
// 验证姓名
}
var CheckObject = function () {
return {
checkName: function () {
console.log("checkName");
// 验证姓名
},
};
};
var a = CheckObject();
a.checkName();
var CheckObject = function () {
return {
checkName: function () {
console.log("checkName");
// 验证姓名
},
};
};
var a = new CheckObject();
a.checkName();
类需要用关键字new创建
var CheckObject = function () {};
CheckObject.prototype = {
checkName: function () {
console.log("checkName");
// 验证姓名
},
};
CheckObject.prototype.checkName();
另一种方式
var CheckObject = function () {};
CheckObject.prototype.checkName = function () {
console.log("checkName");
// 验证姓名
};
CheckObject.prototype.checkName();
var CheckObject = {
checkName: function () {
console.log("checkName");
// 验证姓名
return this;
},
checkEmail: function () {
console.log("checkEmail");
// 验证邮箱
return this;
},
checkPassword: function () {
console.log("checkPassword");
// 验证密码
return this;
},
};
此时我们想使用它 就可以这样
CheckObject.checkName().checkEmail().checkPassword();
var CheckObject = function () {};
CheckObject.prototype = {
checkName: function () {
console.log("checkName");
// 验证姓名
return this;
},
checkEmail: function () {
console.log("checkEmail");
// 验证邮箱
return this;
},
checkPassword: function () {
console.log("checkPassword");
// 验证密码
return this;
},
};
使用时需要先new一下
var a = new CheckObject();
a.checkEmail().checkName().checkPassword();
Function.prototype.checkEmail = function () {
// 验证邮箱
console.log("checkName");
};
var f = function () {};
f.checkEmail();
var f = new Function();
f.checkEmail();
这样做的坏处就是污染了原生对象Function
解决方法:
Function.prototype.addMethod = function (name, fn) {
this[name] = fn;
};
如果你想添加邮箱验证和姓名验证放啊你可以这样做
var methods = function () {}; // 或者 var methods = new function(){}
methods.addMethod("checkName", function () {
console.log("checkName");
// 验证姓名
});
methods.addMethod("checkEmail", function () {
console.log("checkEmail");
// 验证邮箱
});
methods.checkName();
methods.checkEmail();
Function.prototype.addMethod = function (name, fn) {
this[name] = fn;
return this;
};
var methods = function () {}; // 或者 var methods = new function(){}
methods.addMethod("checkName", function () {
console.log("checkName");
// 验证姓名
return this;
});
methods.addMethod("checkEmail", function () {
console.log("checkEmail");
// 验证邮箱
return this;
});
methods.checkName().checkEmail();
Function.prototype.addMethod = function (name, fn) {
this.prototype[name] = fn;
return this;
};
var Methods = function () {};
Methods.addMethod("checkName", function () {
console.log("checkName");
// 验证姓名
}).addMethod("checkEmail", function () {
console.log("checkEmail");
// 验证邮箱
});
var m = new Methods();
m.checkEmail();
这里不能直接调用 要使用new关键词创建新对象
在欢乐的学习中小白的第一天工作结束了,兴奋、痴迷、感概。明天小白将去看看同事们丰富的编程世界。在那时小白将领略封装、继承的魅力
小白工作第一天的故事结束,通过对小白与小铭对函数的多样化创建与使用,我们对JavaScript这门语言有了新的认识,“灵活性” 是这门语言特有的气质,不同的人可以写出不同风格的代码,这是JavaScript给予我们的财富,不过我们要在团队开发中慎重挥霍,尽量保证团队开发代码风格一致,这也是团队代码易开发、可维护以及代码规范的必要要求。
真假对象中如何实现方法的链式调用呢?
试着定义一个可以为函数添加多个方法的addMethod方法
试着定义一个既可为函数原型添加方法又可为其自身添加方法的 addMethod 方法
(答案下期揭晓)
第二章 面向对象
欢迎大家在评论区留下自己的疑问,博主会对其进行一一解答。
var CheckObject = {
checkName: function () {
console.log("checkName");
// 验证姓名
return this;
},
checkEmail: function () {
console.log("checkEmail");
// 验证邮箱
return this;
},
checkPassword: function () {
console.log("checkPassword");
// 验证密码
return this;
},
};
CheckObject.checkName().checkEmail().checkPassword();
var CheckObject = function () {};
CheckObject.prototype = {
checkName: function () {
console.log("checkName");
// 验证姓名
},
};
CheckObject.prototype.checkName();
var CheckObject = function () {};
CheckObject.prototype.checkName = function () {
console.log("checkName");
// 验证姓名
};
CheckObject.prototype.checkName();
var CheckObject = function () {
return {
checkName: function () {
console.log("checkName");
// 验证姓名
},
};
};
var a = new CheckObject();
a.checkName();
var CheckObject = function () {
return {
checkName: function () {
console.log("checkName");
// 验证姓名
},
};
};
var a = CheckObject();
a.checkName();
Function.prototype.addMethod = function (name, fn) {
this.prototype[name] = fn;
return this;
};
var Methods = function () {};
Methods.addMethod("checkName", function () {
console.log("checkName");
// 验证姓名
}).addMethod("checkEmail", function () {
console.log("checkEmail");
// 验证邮箱
});
var m = new Methods();
m.checkEmail();