js方法的写法

Posted on   猫头唔食鱼  阅读(1759)  评论(0编辑  收藏  举报

写法1:最常用的写法

function test() {}

写法2:变量的形式

let a = () => {}

写法3:对象收编变量

 let obj = {
         test() {}
     }

写法4:对象收编变量——链式调用

复制代码
let obj = {
         test() {
             return this
         },
         test2() {
             return this
         }
     }
     // 链式调用
     obj.test().test2()
复制代码

写法5:function也是对象的一种

  let Obj = function () {}
  Obj.test = function () {}
  Obj.test()

写法6:function里return一个函数

   function Obj() {
         return {
             test() {}
         }
     }
     let o = new Obj()
     o.test()

写法7:挂载原型链

 let Fn = function () {}
     Fn.prototype.test = function () {
         console.log(1111);
     }
     let o = new Fn()
     o.test()

写法8:挂载原型链的另一种形式

  let Fn = function () {}
     Fn.prototype = {
         test() {}
     }
     let f = new Fn()
     f.test()

写法9:挂载原型链——链式调用

复制代码
let Obj = function () {}
     Obj.prototype.test = function () {
         return this
     }
     Obj.prototype.test2 = function () {
         return this
     }
     let fn = new Obj()
     fn.test().test2()
复制代码

写法10:挂载原型链——链式调用的另一种方式

复制代码
 let Obj = function () {}
     Obj.prototype = {
         test() {
             return this
         },
         test2() {
             return this
         }
     }
     let fn = new Obj()
     fn.test().test2()
复制代码

写法11:挂载Function类(不传参的)

复制代码
Function.prototype.test = function () {
         console.log(333)
     }

     // 两种调用方式
     let f = function () {}
     f.test()

     let fn = new Function()
     fn.test()
复制代码

写法12:挂载Function类(传参的)

复制代码
  Function.prototype.addMethod = function (name, fn) {
         this[name] = fn //  这里是this[name] = fn
     }
     // 调用方式1
     var o = function () {}
     o.addMethod('test', function () {
         console.log(2);
     })
     o.test()

     // 调用方式2
     var p = new Function()
     p.addMethod('test2', function () {
         console.log(3);
     })
     p.test2()
复制代码

写法13:挂载Function——链式调用

复制代码
 Function.prototype.addMethod = function (name, fn) {
         this[name] = fn
         return this
     }

     var x = new Function()
     x.addMethod('test', function () {
         console.log(4);
         return this
     })
     x.addMethod('test2', function () {
         console.log(5);
         return this
     })
     x.test().test2()

     let y = function () {}
     y.addMethod('test3', function () {
         console.log(6);
         return this
     })
     y.addMethod('test4', function () {
         console.log(7);
         return this
     })
     y.test3().test4()
复制代码

写法14:终极写法(链式添加方法和链式调用方法)

复制代码
 Function.prototype.addMethod = function (name, fn) {
         this.prototype[name] = fn
         return this
     }
     var Methods = function () {}
     Methods.addMethod('test', function () {
         console.log('last');
         return this
     }).addMethod('test2', function () {
         console.log('last2');
         return this
     })
     // 只有这种调用方法
     var x = new Methods()
     x.test().test2()
复制代码

 

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示