最近在學習編寫js代碼的時候遇到了this和with關鍵字,經過查找資料,現總結如下:
一、This
this 對象 返回“當前”對象。在不同的地方,this 代表不同的對象。如果在 JavaScript 的“主程序”中(不在任何 function 中,不在任何事件處理程序中)使用 this,它就代表 window 對象;如果在 with 語句塊中使用 this,它就代表 with 所指定的對象;如果在事件處理程序中使用 this,它就代表發生事件的對象。例如:
這個用法常用於立刻檢測表單輸入的有效性。
<script>
function check(formObj) {
...
}.
</script>
<body ...>
<form ...>
<input type="text" ... onchange="check(this.form)">
</form>
</body>
二、With 爲某些語句指定默認對象
with 語句 爲一個或一組語句指定默認對象。
用法:with (<對象>) <語句>;
with 語句通常用來縮短特定情形下必須寫的代碼量。在下面的例子中,請注意 Math 的重複使用:
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10);
y = Math.tan(14 * Math.E);
當使用 with 語句時,代碼變得更短且更易讀:
with (Math) {
x = cos(3 * PI) + sin(LN10);
y = tan(14 * E);
}