foo

日常--js

佐手、 提交于 2019-12-16 01:54:28
今天做了道题。 function Foo() { Foo.a = function() { console.log(1) } this.a = function() { console.log(2) } } Foo.prototype.a = function() { console.log(3) } Foo.a = function() { console.log(4) } Foo.a(); //4 let obj = new Foo(); obj.a(); //2 Foo.a(); //1 最后的结果还是有点迷惑。 obj.a()毋庸置疑就是2,因为obj是Foo的实例,所以会复制构造函数的属性。 但是Foo.a()的输出我有点疑惑。看解释说第一个Foo.a()是全局作用域里面找然后就是运行,从而打印出4.然后在new Foo();这个过程中,运行了Foo()内部的函数,第一条就是将全局的Foo.a覆盖成了打印出1的函数。那么问题来了: function foo() { a = function() { console.log(1) } } var a = function() { console.log(4) } a(); //4 foo(); a(); //1 这也是同类型的覆盖 var a = 1 function f() { var a = 2 } function y

删除目录的符号链接

蹲街弑〆低调 提交于 2019-12-12 22:01:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我有一个重要目录的符号链接。 我想摆脱那个符号链接,同时保持它背后的目录。 我试过 rm 然后回来 rm: cannot remove 'foo' 。 我尝试了 rmdir 并找回了 rmdir: failed to remove 'foo': Directory not empty 然后我通过 rm -f , rm -rf 和 sudo rm -rf 进展 然后我去寻找我的备份。 有没有办法摆脱符号链接,而不是用洗澡水扔掉婴儿? #1楼 使用 rm symlinkname 但不要在末尾包含正斜杠(不要使用: rm symlinkname/ )。 然后,您会被询问是否要删除符号链接, y 回答yes。 #2楼 如果rm无法删除符号链接,您可能需要查看包含符号链接的目录的权限。 要删除目录条目,您需要对包含目录具有写入权限。 #3楼 使用“unlink”命令并确保 不在 最后使用/ $ unlink mySymLink unlink()从文件系统中删除名称。 如果该名称是文件的最后一个链接,并且没有进程打开该文件,则该文件将被删除,并且其使用的空间可供重用。 如果名称是文件的最后一个链接,但任何进程仍然打开文件,则文件将保持存在,直到引用它的最后一个文件描述符关闭。 我认为如果我正确阅读它可能会有问题。

获取对象属性(所有属性、可枚举、不可枚举、自身属性【非原型链继承】)个数详解

微笑、不失礼 提交于 2019-12-09 22:31:39
一、获取可枚举的属性 方法一:for......in 方法一: Object.keys() Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 。 语法 Object.keys( obj ) 参数 obj:要返回其枚举自身属性的对象。 返回值 一个表示给定对象的所有可枚举属性的字符串数组。 例子 // simple array var arr = ['a', 'b', 'c']; console.log(Object.keys(arr)); // console: ['0', '1', '2'] // array like object var obj = { 0: 'a', 1: 'b', 2: 'c' }; console.log(Object.keys(obj)); // console: ['0', '1', '2'] // array like object with random key ordering var anObj = { 100: 'a', 2: 'b', 7: 'c' }; console.log(Object.keys(anObj)); // console: ['2', '7', '100'] // getFoo is a property

JavaScript 用箭头函数 => 来写个闭包

安稳与你 提交于 2019-12-07 15:57:37
###先来个简单的知识点过渡 //我们一步一步演化,这样好过干巴巴的介绍 箭头函数 的语法。 顺便说一句右边这货就是箭头函数: => ####普通的匿名函数 与 【箭头函数】 //这是一个普通的匿名函数 var foo = (function() { return "大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!"; }); //这是对应的箭头函数 var foo = () => "大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!"; //当然如果有强迫症的话也可以写成这样: var foo = (() => "大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!"); //或这样: var foo = (() => "大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!" ); //测试 alert(foo());//弹窗:大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢! ####带参数的匿名函数 与 【箭头函数】 //这是一个带参数的匿名函数 var foo = (function(n) { return n*10; }); //这是对应的箭头函数 var foo = (n) => n*10; //顺便说一句:向上面没有参数的情况,括号是一定要的。但是如果只有一个参数可以省掉,像这样: var foo = n => n*10; //测试 alert(foo(1));// 10 alert(foo(2))

[JavaScript]-JavaScript的this原理.

坚强是说给别人听的谎言 提交于 2019-12-06 13:51:12
一、问题的由来 学懂 JavaScript 语言,一个标志就是理解下面两种写法,可能有不一样的结果。 var obj = { foo: function () {} }; var foo = obj.foo; // 写法一 obj.foo() // 写法二 foo() 上面代码中,虽然obj.foo和foo指向同一个函数,但是执行结果可能不一样。请看下面的例子。 var obj = { foo: function () { console.log(this.bar) }, bar: 1 }; var foo = obj.foo; var bar = 2; obj.foo() // 1 foo() // 2 这种差异的原因,就在于函数体内部使用了this关键字。很多教科书会告诉你,this指的是函数运行时所在的环境。对于obj.foo()来说,foo运行在obj环境,所以this指向obj;对于foo()来说,foo运行在全局环境,所以this指向全局环境。所以,两者的运行结果不一样。 这种解释没错,但是教科书往往不告诉你,为什么会这样?也就是说,函数的运行环境到底是怎么决定的?举例来说,为什么obj.foo()就是在obj环境执行,而一旦var foo = obj.foo,foo()就变成在全局环境执行? 本文就来解释 JavaScript 这样处理的原理。理解了这一点

多态与鸭子和反射

一个人想着一个人 提交于 2019-12-06 12:46:48
一、多态 1.什么是多态? 多态指同一类型的事物的,不同形态。 2.多态的目的: 多态也称之为多态性,目的是为了在不知道对象具体类型的情况下统一对象🙆调用方法的规范。 多态的表现形式之一就是继承: 先抽象,再继承。 父类:定制一套统一的规范。 子类:遵循父类的统一的的规范。 注意:在python中不会强制限制子类必须遵循父类的规范,所以出现了抽象类。 class Animal: def eat(self): pass​ def speak(self): pass​​class Pig(Animal): def eat(self): print('一口没')​ def speak(self): print('哼哼哼')​​class Cat(Animal): def eat(self): print('慢慢吃') def speak(self): print('喵喵喵')​​class Dog(Animal): def eat(self): print('还有吗') def speak(self): print('汪汪汪')​animal = Pig()animal1 = Cat()animal2 = Dog()​animal.eat()animal1.eat()animal2.eat()​animal.speak()animal1.speak()animal2.speak(

显式关键字是什么意思?

岁酱吖の 提交于 2019-12-06 07:57:34
explicit 关键字在C ++中是什么意思? #1楼 允许编译器进行一次隐式转换,以将参数解析为函数。 这意味着编译器可以使用可通过 单个参数 调用的构造函数从一种类型转换为另一种类型,以便获得参数的正确类型。 这是带有可用于隐式转换的构造函数的示例类: class Foo { public: // single parameter constructor, can be used as an implicit conversion Foo (int foo) : m_foo (foo) { } int GetFoo () { return m_foo; } private: int m_foo; }; 这是一个带有 Foo 对象的简单函数: void DoBar (Foo foo) { int i = foo.GetFoo (); } 这就是 DoBar 函数的调用位置。 int main () { DoBar (42); } 该参数不是 Foo 对象,而是 int 。 但是, Foo 有一个采用 int 构造函数,因此可以使用该构造函数将参数转换为正确的类型。 允许编译器对每个参数执行一次此操作。 在 explicit 关键字前面加上构造函数,可以防止编译器将该构造函数用于隐式转换。 将其添加到上述类中将在函数调用 DoBar (42) 创建编译器错误。 现在必须使用

如何重置postgresql用户密码

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-06 05:31:20
如何重置postgresql用户密码 场景: 打算新建一个postgresql的数据库 FooDB 并把所有者权限赋给用户 foo 正常操作应该是:先创建用户foo,再用foo身份创建数据库 FooDB 操作 1、先创建用户 foo,在postgresql的bin目录下执行命令 createuser.exe -s -P foo -U postgres -s 表示新建 foo用户是 superuser -P 表示执行命令后,显示输入密码的过程 -U postgres 表示,使用超级用户postgres的身份连接数据库服务器,并创建新用户foo 执行时候要求输入postgres用户的密码,结果发现密码早忘了,所以需要重新设置postgres用户的密码 解决方法: 1、关闭数据库服务 2、进入数据库的工作空间目录 (如果是建库是没有另外指定,应该就是postgresql安装目录下的 data 目录) 3、编辑修改文件 pg_hba.conf, 把连接权限设置的 md5 加密方式 改成 trust 以我的为例,原本设置是 1. # TYPE DATABASE USER CIDR-ADDRESS METHOD 2. # IPv4 local connections: 3. host all all 127.0.0.1/32 md5 修改为 1. # TYPE DATABASE USER

面向对象之isinstance与issubclass(python内置方法)

不想你离开。 提交于 2019-12-06 00:23:29
isinstance issubclass TOC isinstance 判断一个对象是否是另外一个类的实例,返回布尔值。 是:True 否:False class Foo: pass class Boo: pass foo_obj = Foo() boo_obj = Boo() print(isinstance(foo_obj, Foo)) print(isinstance(boo_obj, Foo)) >>>True >>>False issubclass 判断一个类是否是另外一个类的子类,返回布尔值。 是:True 否:False class Father: pass class Sub(Father): pass class Foo: pass print(issubclass(Sub, Father)) print(issubclass(Foo, Father)) >>>True >>>False 来自为知笔记(Wiz) 来源: https://www.cnblogs.com/cnhyk/p/11953517.html

isinstance与issubclass

谁说胖子不能爱 提交于 2019-12-06 00:12:04
isinstance与issubclass是python的内置模块: ******* - isinstance: 判断一个对象是否是另一个类的实例。 - 如果是: True - 如果不是: False - issubclass: 判断一个类是否是另一个类的子类。 - 如果是: True - 如果不是: False千言不如一码。 # isinstance class Foo: pass class Boo: pass foo_obj = Foo() boo_obj = Boo() print(isinstance(foo_obj, Foo)) # True print(isinstance(boo_obj, Foo)) # False # issubclass class Father: pass class Sub(Father): pass class Foo: pass print(issubclass(Sub, Father)) # True print(issubclass(Foo, Father)) # False    来源: https://www.cnblogs.com/lvguchujiu/p/11952903.html