随笔分类 -  函数

摘要:什么是实例? 构造函数创建的对象,叫实例。构造函数和实例永远相生相伴。 实例的本质是对象,但实例是构造函数创建出来的,“实例”这个称呼表达的就是“我是构造函数创建出来的对象”。 儿子为什么叫儿子?正是因为儿子是有母亲的。“儿子”这个词表达的就是多重意思,不仅仅指这个人是一个人,而且他还是母亲生的。 阅读全文
posted @ 2021-02-07 12:35 李逍遥701 阅读(374) 评论(0) 推荐(0)
摘要:一:(function(){ code }()); 二:(function(){ code })(); 阅读全文
posted @ 2021-01-27 13:09 李逍遥701 阅读(158) 评论(0) 推荐(0)
摘要:画像: 闭包是一个函数 另一个函数内的函数 可以访问外部函数的变量 闭包可以看作是函数内部作用域的一个接口 作用: 访问外部函数的局部变量 使得这些变量一直在内存中 阅读全文
posted @ 2021-01-27 13:00 李逍遥701 阅读(56) 评论(0) 推荐(0)
摘要:1 function Fubar(foo, bar){ 2 'use strict'; 3 this._foo = foo; 4 this._bar = bar; 5 } 6 7 Fubar() 8 // TypeError: Cannot set property '_foo' of undefi 阅读全文
posted @ 2021-01-25 15:14 李逍遥701 阅读(127) 评论(0) 推荐(0)
摘要:有一构造函数如下: 1 function Shape() { 2 this.x = 0; 3 this.y = 0; 4 } 5 6 Shape.prototype.move = function (x, y) { 7 this.x += x; 8 this.y += y; 9 console.in 阅读全文
posted @ 2021-01-23 21:50 李逍遥701 阅读(79) 评论(0) 推荐(0)
摘要:多次声明,以“后声明”为主 这里的后指的是什么? 从本例来看,对于相同类型的函数声明(function命令),指的是书写时间上的“后”,先写后写中的“后”。 还有一种表达式声明: 本质上是: function f var f f=function..... 这两个f之间有什么关联? 阅读全文
posted @ 2021-01-08 09:57 李逍遥701 阅读(724) 评论(0) 推荐(0)
摘要:函数表达式是一个函数 函数表达式是一个表达式 苹果是一种食物 苹果是一种水果 var v = function() { }; 这是一条给变量赋值的语句 此时的函数成为了给变量赋值的“值” 表达式 可以被进一步计算的式子 最终状态是一个值 综上,函数表达式的本质是一个函数。 除开“函数身份”外,还有一 阅读全文
posted @ 2021-01-06 18:25 李逍遥701 阅读(575) 评论(0) 推荐(0)
摘要:var f = new Function( 'x' , 'y' , 'return x+y' ); Function是一个构造函数,能创建实例。 此函数接收的最后一个参数,是“实例”函数的函数体;其它参数是“实例函数”的形参。 能省略new,效果一样。 阅读全文
posted @ 2021-01-06 18:09 李逍遥701 阅读(113) 评论(0) 推荐(0)
摘要:没有this 没有arguments 不能使用new调用 没有super js的精髓在于创建一个函数并将其传递到某个地方, 这样的函数,需要在适合它的上下文中发挥作用,这就是箭头函数的用武之地了。 阅读全文
posted @ 2020-12-18 14:32 李逍遥701 阅读(78) 评论(0) 推荐(0)
摘要:1 function slow(x) { 2 // 这里可能会有重负载的 CPU 密集型工作 3 alert(`Called with ${x}`); 4 return x; 5 } 6 7 function cachingDecorator(func) { 8 let cache = new Ma 阅读全文
posted @ 2020-12-17 19:05 李逍遥701 阅读(61) 评论(0) 推荐(0)
摘要:1 let i = 1; 2 setTimeout(function run() { 3 func(i++); 4 setTimeout(run, 100); 5 }, 100); 等待前一次调用完成后再调用。 阅读全文
posted @ 2020-12-17 18:28 李逍遥701 阅读(1514) 评论(0) 推荐(0)
摘要:let timerId = setTimeout(func|code, [delay], [arg1], [arg2], ...) 形参: 函数或代码字符串 延迟时间(默认为零) 即将执行函数需要的参数 如果传入字符串,js会自动创建一个函数。 setTimeout调用时会返回一个定时器标识符,可以 阅读全文
posted @ 2020-12-17 17:43 李逍遥701 阅读(126) 评论(0) 推荐(0)
摘要:1 let str = ... 动态地接收来自服务器的代码 ... 2 3 let func = new Function(str); 4 func(); 能够接收字符串,再把字符串转换为函数体代码。 阅读全文
posted @ 2020-12-17 17:24 李逍遥701 阅读(177) 评论(0) 推荐(0)
摘要:内部函数可以访问外部函数中的属性和方法,即使外部函数已经死亡。 所有函数都会通过隐藏的[[Environment]] 属性记住它们被创建时所在的位置。 阅读全文
posted @ 2020-12-17 14:43 李逍遥701 阅读(89) 评论(0) 推荐(0)
摘要:形参的个数,Rest参数不算。 1 function ask(question, ...handlers) { 2 let isYes = confirm(question); 3 4 for(let handler of handlers) { 5 if (handler.length == 0) 阅读全文
posted @ 2020-12-17 14:36 李逍遥701 阅读(225) 评论(0) 推荐(0)
摘要:Named Function Expression 1 let sayHi=function fname(who) { 2 alert(`hello, ${who}`); 3 }; 1 let sayHi = function fname(who) { 2 if (who) { 3 alert(`H 阅读全文
posted @ 2020-12-17 13:42 李逍遥701 阅读(514) 评论(0) 推荐(0)
摘要:全局对象包含的变量和方法,可以在任何地方被使用 globalThis Modules是什么? 阅读全文
posted @ 2020-12-17 12:29 李逍遥701 阅读(54) 评论(0) 推荐(0)
摘要:immediately-invoked function expression 函数表达式: let f=function() {...}; 把函数表达式用()括起来,再加一个(): 1 (function() { 2 var message="hello"; 3 alert(message); 4 阅读全文
posted @ 2020-12-17 11:38 李逍遥701 阅读(115) 评论(0) 推荐(0)
摘要:var声明的变量,只有函数作用域或者全局作用域 允许重复声明,重复声明会被忽略但不会报错 先使用,再声明 声明可以被提升,但赋值不可以 阅读全文
posted @ 2020-12-17 11:19 李逍遥701 阅读(216) 评论(0) 推荐(0)
摘要:把整体代码比作西瓜,吃的时候喜欢切成一块一块的,那一块西瓜就叫西瓜块。 代码块就是整体代码的一部分。 把整体代码比作一大片有着良田美池,阡陌交通的桃花源。这么好的地方,这么多人,地盘肯定要被瓜分,刘备划走一块,曹操划走一块,划分地盘的目的就是告诉其他人,这块地是我的,别来。 马老师也有幸分得一块,他 阅读全文
posted @ 2020-12-17 10:58 李逍遥701 阅读(362) 评论(0) 推荐(0)