0%

JS 中调用方法或函数时,有时候需要变更 this 的指向,通常我们会使用 call/apply,而 bind 也可以改变 this 的指向,那么他们有什么区别呢? 简单地说,call/apply 是改变 this 指向时立即调用,而 bind 只是绑定了新的指向,返回的依然是一个 function。举例说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var foo = {
a: 1,
b: 2,
add: function(before, after){
return before + this.a + this.b + after;
}
},
bar = {
a: 3,
b: 4
};
// call
foo.add.call(bar, 'before', 'after'); // #1
// bind
foo.add.bind(bar, 'before', 'after')(); // #2
foo.add.bind(bar)('before', 'after'); // #3

#1,#2,#3 将会返回一样的值。

本地开发一个 RESTFul 网站,开发时 RESTFul 服务器和网页服务器不在一个域下面,部署后将放在同一个域下,这样,本地开发时,跨域问题就会造成请求失败。尝试各种方案都不甚理想,直到找到了 corsproxy 这个神器。 corsproxy 是一个基于 node.js 的反向代理服务,启动后会自动对 ajax 请求进行转发,由于其域是在 localhost 下面的,所以与本地服务器不存在跨域问题。 首先安装服务:

# 安装服务
npm install -g corsproxy
# 启动服务
corsproxy

根据提示,将 ajax 请求加上 http://localhost:1337/ 前缀,比如,你要访问 http://my.domain.com/path/to/resource 这个接口,于是将其改为 http://localhost:1337/my.domain.com/path/to/resource。 齐活。 Have fun!

迁移了计算机数据以后,Chrome 书签栏有可能会出现网页图标(favicon)不显示的情况(都是白色默认图标),使用以下步骤即可修复(via):

1. 彻底关闭 Chrome; 2. 打开 Chrome User Data 文件夹(文件夹路径); 3. 删除名为「Favicon」的文件; 4. 打开 Chrome; 5. 点击访问书签栏上的每一个标签,强行刷新图标。

Have fun! PS:Chrome User Data 路径如下:

#Default Location

#Windows XP
Google Chrome: C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Google\Chrome\User Data\Default
Chromium: C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Chromium\User Data\Default

#Windows 10 / 8 / 7 / Vista
Google Chrome: C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default
Chromium: C:\Users\%USERNAME%\AppData\Local\Chromium\User Data\Default

#Mac OS X
Google Chrome: ~/Library/Application Support/Google/Chrome/Default
Chromium: ~/Library/Application Support/Chromium/Default

#Linux
Google Chrome: ~/.config/google-chrome/Default
Chromium: ~/.config/chromium/Default

#Chrome OS
/home/chronos/

#Cache Directory

#The cache directory follows the XDG specs:
Google Chrome: $XDG_CACHE_HOME/google-chrome, which defaults to ~/.cache/google-chrome
Chromium: $XDG_CACHE_HOME/chromium, which defaults to ~/.cache/chromium
#If you pass –user-data-dir=/path/to/foo, the cache will be under /path/to/foo.

网易云音乐 MAC 客户端出现「网络不给力哦,请检查网络设置」的情况,症状如下: 1、打开 web 版网易云音乐一切正常; 2、相同网络下手机客户端一切正常; 3、打开 Surge 后 MAC 客户端正常,查看 Request 记录发现网络是走的 DIRECT(未走 ** 渠道) 使用各种方法都无法修复,而 Surge 如果常开的话会影响其他软件的使用(一般不会常开),百般无奈,查看网络设置 -> 高级 -> 代理,取消掉了「Web 代理」和「安全 Web 代理」的勾选,重新打开网易云音乐客户端,一切正常。 问题得以解决,不过不算优雅,坏处是,以后每次想要使用 Surge 又要重新勾选这两个选项了。