Ⅰ 為什麼javascript裡面的this在IE9用不了

一直用IE9,也在維護js的類庫,你說的情況不存在的。

科普一下,javascript的this與面向對象的this概念略有不同,js的核心是函數式的編程語言,this代表調用者的上下文。

如:

var ns1 = { a: function () { this ...; } };

如果調用:
ns1.a(...);

a中的this就是ns1。

瀏覽器裡面,如果是全局函數,this就是window對象,如果將函數復制到其他對象上,那麼通過obj.fun()調用,this就是obj。

在javascript中,this可以通過apply改變。

Ⅱ 菜鳥求助:javascript中this的用法以及鏈接中href在js中#的用法

<a href="#" onclick="bg(this);return false">4X6</a>

<a href="javascript:void(0)" onclick="bg(this);return false">4X6</a>

Ⅲ js中的this怎麼用

一般this出現在函數里時,只有在函數執行時才能確定this是什麼,因為this是指那個調用這個函數的對象。比如說有如下方法:
function test(){
alert(this.length);
}
則,如下調用:
var str = new String(「test」);
str.test = test;
str.test();
此時的this就是字元串str,則調用過程彈出this的長度,實際就是彈出這里的str的長度,所以結果是4.
而如果是下面的調用:
var arr = new Array(1,2,3,4,5,6);
arr.test = test;
arr.test();
則這里的this就是arr這個數組,相應的彈出的就是數組arr的長度,也就是6.

而當沒有對象來調用這個函數,即直接調用時,如下:
test();
因為在js中,全局的定義默認都是window的屬性或對象,所以這里的調用,實際上是如下調用:
window.test();
window的length為0.則彈出的就是0.如果你定義了一個length,比如如下調用:
var length = 10;
test();
則彈出的就是10了。因為全局的定義一個length,實際相當於給window添加或重寫了一個屬性length。

Ⅳ javascript中this的意思

JavaScript:this是什麼?

定義:this是包含它的函數作為方法被調用時所屬的對象。
說明:這句話有點咬嘴,但一個多餘的字也沒有,定義非常准確,我們可以分3部分來理解它!
1、包含它的函數。2、作為方法被調用時。3、所屬的對象。
看例子:
function to_green(){
this.style.color="green";
}
to_green();
上面函數中的this指的是誰?
分析:包含this的函數是,to_green
該函數作為方法被調用了
該函數所屬的對象是。。?我們知道默認情況下,都是window對象。
OK,this就是指的window對象了,to_green中執行語句也就變為,window.style.color="green"
這讓window很上火,因為它並沒有style這么個屬性,所以該語句也就沒什麼作用。
我們在改一下。

window.load=function(){
var example=document.getElementById("example");
example.onclick=to_green;
}
這時this又是什麼呢?
我們知道通過賦值操作,example對象的onclick得到to_green的方法,那麼包含this的函數就是onclick嘍,
那麼this就是example引用的html對象嘍。
this的環境可以隨著函數被賦值給不同的對象而改變!
下面是完整的例子:

<script type="text/javascript">
function to_green(){
this.style.color="green";
}
function init_page(){
var example=document.getElementById("example");
example.onclick=to_green;
}
window.onload=init_page;
</script>
<a href="#" id="example">點擊變綠</a>

Ⅳ js中innerHTML與innerText的用法與區別

1、js中innerHTML的用法:

innerHTML可獲取或設置指定元素標簽內的 html內容,從該元素標簽的起始位置到終止位置的全部內容(包含html標簽)。

獲取元素的內容:element.innerHTML;

給元素設置內容:element.innerHTML =htmlString;

代碼示例為:

<p id="test"><font color="#000">獲取段落p的 innerHTML</font></p>

document.getElementById("test").innerHTML

輸出內容為:<font color="#000">獲取段落p的 innerHTML</font>


(5)javascripthtmlthis擴展閱讀:

1、javascript獲取節點文本值:

(1)原生js寫法 document.getElementById('test').innerHTML

(2)jQuery寫法 $('#test').html()

2、javascript獲取節點的方法:

(1)通過id的方式

document.getElementById("id")

(2)通過類名查找元素,多個類名用空格分隔,得到一個HTMLCollection(一個元素集合,有length屬性,可以通過索引號訪問裡面的某一個元素)

document.getElementsByClassName('a b')

(3)通過標簽名查找元素 返回一個HTMLCollection

document.getElementsByTagName('div')

(4)通過name屬性查找,返回一個NodeList(一個節點集合,有length屬性,可以通過索引號訪問)

document.getElementsByName('c')

Ⅵ javascript中this,這兩種寫法有什麼區別

建議加深理解js的作用域概念
簡單的說,不寫this的那個,變數i跟function不在同一個作用域內
雖然看起來這段代碼執行的時候索引變數i是不同的,但function是非同步的,都是被觸發時才去讀取那個變數i,你想一下這個時候的i的值會是你想要的那個值嗎?

Ⅶ 為什麼下面javascript 的this的指向window

o是一個obj對象(指向window),o.fn()是對象中的方法繼承指向window, o.fn()這個方法return(返回)一個方法,方法列印this,起始就是o.fn()的方法體,繼承方法的指向this還是window
所以o.fn()()執行的其實就是console.log(this),this一直沒變指向

Ⅷ js中this代表什麼意思

代表當前對象啊,js不是有document.getElementByID通過ID獲取對象么,this就是獲取當前對象,比如id為btn的按鈕的onclick方法 onclick="method(this)",這個this就是當前按鈕對象,作用和document.getElementByID("btn")一樣。

Ⅸ javascript的this訪問

在methods.say中使用this.name是訪問不到Person的name成員的,因為methods.say方法中的this是指向methods這個對象的。只能調用時傳入,或者使用函數的apply方法來調用, 從而可以指定this對象為Person.

Ⅹ 關於javascript的this在代碼中代表什麼為什麼一個是this一個是this.form

第一個 this 指的是html控制項本身,即文本輸入框,這里是顯示文本框的輸入內容,所以傳的是this。第一個 this 其實也指的是html控制項本身,即按鈕,this.form指的是這個按鈕所在的form,因為處理form數據是要通過form來取得數據,所以了里傳的是this.form