JavaScript函数实现方式大总结
JavaScript函數(shù)實(shí)現(xiàn)方式大總結(jié),眾多的函數(shù)實(shí)現(xiàn)方式中,你現(xiàn)在用的是哪種?
一:例子需求分析
實(shí)現(xiàn)表單驗(yàn)證功能,驗(yàn)證用戶名、郵箱、密碼。
二:實(shí)現(xiàn)方案(13種)
①:全局函數(shù)方式
function checkName() {// 驗(yàn)證姓名}function checkEmail() {// 驗(yàn)證郵箱}function checkPassword() {// 驗(yàn)證密碼}②:全局函數(shù)的另一種形式
var checkName = function () {// 驗(yàn)證姓名}var checkEmail = function () {// 驗(yàn)證郵箱}var checkPassword = function () {// 驗(yàn)證密碼}③:用對(duì)象收編變量
var CheckObject = {checkName: function () {// 驗(yàn)證姓名},checkEmail: function () {// 驗(yàn)證郵箱},checkPassword: function () {// 驗(yàn)證密碼}}調(diào)用方法:CheckObject.checkName()
④:對(duì)象的另一種形式
var CheckObject = function () {}CheckObject.checkName = function () {// 驗(yàn)證姓名}CheckObject.checkEmail = function () {// 驗(yàn)證郵件}CheckObject.checkPassword = function () {// 驗(yàn)證密碼}⑤:真假對(duì)象
var CheckObject = function () {return {checkName: function () {// 驗(yàn)證姓名},checkEmail: function () {// 驗(yàn)證郵件},checkPassword: function () {// 驗(yàn)證密碼}}}調(diào)用方法:?
var a = CheckObject()a.checkEmail()⑥:類的形式
var CheckObject = function () {this.checkName = function () {// 驗(yàn)證姓名}this.checkEmail = function () {// 驗(yàn)證郵箱}this.checkPassword = function () {// 驗(yàn)證密碼}}調(diào)用方法:
var a = new CheckObject()a.checkEmail()⑦:類的形式結(jié)合prototype
var CheckObject = function () {}CheckObject.prototype.checkName = function () {// 驗(yàn)證姓名}CheckObject.prototype.checkEmail = function () {// 驗(yàn)證郵箱}CheckObject.prototype.checkPassword = function () {// 驗(yàn)證密碼}調(diào)用方法:見(jiàn)⑧
⑧:⑦的簡(jiǎn)化寫(xiě)法
var CheckObject = function () {}CheckObject.prototype = {checkName: function () {// 驗(yàn)證姓名},checkEmail: function () {// 驗(yàn)證郵箱},checkPassword: function () {// 驗(yàn)證密碼}}調(diào)用方法:
var a = new CheckObject()a.checkName()a.checkEmail()a.checkPassword()⑨:基于⑧實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用
var CheckObject = function () {}CheckObject.prototype = {checkName: function () {// 驗(yàn)證姓名return this},checkEmail: function () {// 驗(yàn)證郵箱return this},checkPassword: function () {// 驗(yàn)證密碼return this}}調(diào)用方法:
var a = new CheckObject()a.checkName().checkEmail().checkPassword()⑩:簡(jiǎn)單粗暴地對(duì)函數(shù)的祖先進(jìn)行擴(kuò)展(一般不建議)
Function.prototype.checkEmail = function () {// 驗(yàn)證郵箱}調(diào)用方法:
var f = function () {}f.checkEmail()或var f = new Function()f.checkEmail()(11):優(yōu)雅地對(duì)函數(shù)祖先進(jìn)行擴(kuò)展
Function.prototype.addMethod = function (name, fn) {this[name] = fn}// 往addMethod中添加方法var methods = new Function() 或 var methods = function () {}methods.addMethod('checkEmail', function () {// 驗(yàn)證郵箱})methods.addMethod('checkName', function () {// 驗(yàn)證姓名})調(diào)用方法:
methods.checkName()methods.checkEmail()(12):鏈?zhǔn)降貙?duì)函數(shù)祖先進(jìn)行擴(kuò)展、鏈?zhǔn)秸{(diào)用
Function.prototype.addMethod = function (name, fn) {this[name] = fnreturn this}var methods = new Function()methods.addMethod('checkName', function () {// 驗(yàn)證姓名return this}).addMethod('checkEmail', function () {// 驗(yàn)證郵箱return this}).addMethod('checkPassword', function () {// 驗(yàn)證密碼return this})調(diào)用方法:
methods.checkName().checkEmail().checkPassword()(13):將(12)改為類式調(diào)用
Function.prototype.addMethod = function (name, fn) {this.prototype[name] = fnreturn this}var Methods = new Function()Methods.addMethod('checkName', function () {// 驗(yàn)證姓名return this}).addMethod('checkEmail', function () {// 驗(yàn)證郵箱return this}).addMethod('checkPassword', function () {// 驗(yàn)證密碼return this})調(diào)用方法:
var m = new Methods()m.checkName().checkEmail().checkPassword()總結(jié):
JavaScript是一門很靈活的語(yǔ)言,“靈活性”是這門語(yǔ)言特有的氣質(zhì)。
上邊的小需求你來(lái)實(shí)現(xiàn)的時(shí)候,用的是哪種寫(xiě)法呢?歡迎交流交流~~
學(xué)習(xí)交友:
總結(jié)
以上是生活随笔為你收集整理的JavaScript函数实现方式大总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 银行年利息是多少点
- 下一篇: JavaScript面向对象——封装及相