- 【2016.02.22至今】的学习笔记。
相关博客:
1. this
在 JavaScript 中主要有以下五种使用场景
- 在全局函数调用中,
this
绑定全局对象,浏览器环境全局对象为window
。 - 作为对象方法使用,
this
绑定到该对象。 - 在对象a的方法b内部的函数c中,
this
也绑定全局对象,应该绑定到方法b对应的对象a上。这是 JavaScript的缺陷,解决方法:用that
捕捉。 - 在构造函数中,
this
绑定到新创建的对象。 - 使用
apply
或call
调用函数,this
将会被显式设置为传入的的第一个参数。
// 三段有意思的代码
window.test = 'test'
var obj = {
test: 'objtest',
getAge: function () {
var obj2 = {
test: 'obj2test',
getAge2: function () {
console.log(this.test)
}
}
return obj2;
}
};
obj.getAge().getAge2() // 'obj2test'
// ==============
var obj = {
birth: 1990,
getAge: function () {
var b = this.birth; // 1990
var fn = function () {
return new Date().getFullYear() - this.birth; // this指向window或undefined
};
return fn();
}
};
// ==============
var a = 1;
f1 = function () {
var a = 2;
console.log(this.a);
};
f1(); // 1
2. encodeURIComponent()
函数
定义和用法
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
语法
encodeURIComponent(URIstring)
返回值
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
说明
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?