前端语言的一些理解
1、关于this
在面向对象语言中 this 表示当前对象的一个引用。
但是到了 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。
- 在方法中,this 表示该方法所属的对象。
- 如果单独使用,this 表示全局对象。
- 在函数中,this 表示全局对象。
- 在函数中,在严格模式下,this 是未定义的(undefined)。
- 在事件中,this 表示接收事件的元素。
- 类似 call() 和 apply() 方法可以将 this 引用到任何对象。
标签元素中可绑定点击事件将当前标签对象通过this传给js函数,函数就可以获的/改变这个标签的所有内容,例如下面的例子
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button id="123" type="button" onclick="test(this)">点我</button>
</body>
<script>
function test(data) {
console.log("这里的data就是button这个标签元素对象")
var a = '标签的id为:' + data.id + ',标签的类型为:' + data.type + ',标签的内容为:' + data.innerHTML
alert(a)
data.type = 'submit'
}
</script>
</html>
2、关于js中的对象
js中的对象在某种意义上基本上就可以理解为json字符串
3、关于调试
最好使用在代码里添加console.log(this)运行后,打开浏览器控制台可看到运行时的this内容
善用Chrome浏览器的控制台对js的执行进行断点,打了断点后必须打开控制台才会生效,否则是不会进入断点的,在想要打断点的地方输入console.log(this)后,进入控制台就可以进入js实际执行的位置,然后进行断点调试
4、关于字符串
很多方法调用,或者数据传递的引用都是通过字符串直接进行传递的,这一点很不友好,需要着重理解