js 對(duì)象外部訪問(wèn)或者調(diào)用問(wèn)題
更新時(shí)間:2008年11月27日 14:08:00 作者:
造成樓主的模糊的其實(shí)是this指向的問(wèn)題,你可以用alert出this看看,他們分別指向的是什么,相信您就會(huì)明白了!
在您寫的那個(gè)c中的this其實(shí)指向的是c 而不是abc!
以下是我的代碼:
<script>
abc = function(){
this.a;
this.b;
}
abc.prototype = {
getData:function(){
var c = function(num){
alert(num);
this.b = num;
}
c('12345');
},
clearData:function(){
this.getData();
alert(this.b);
}
}
var d = new abc();
d.clearData();
</script>
這部分中:
var c = function(num){
alert(num);
this.b = num;
}
c('12345');
我想把得到的num傳給開(kāi)始定義好的this.b; 但這樣是不行的,不知怎么寫一下可以? 現(xiàn)在的格式不能改,能改的只有 c = function(){ 這里邊的東西}
可以這樣理解:引用:
function functionName(arg){……};
functionName(argvalue);以這種形式使用函數(shù),是大家最熟悉的。
“()”(括號(hào))可以把包裹在其中的語(yǔ)句變成一個(gè)“名詞”。引用:
(function(形參){函數(shù)體})把一個(gè)匿名函數(shù)包裹在括號(hào)里,使它對(duì)于代碼的其他部分來(lái)說(shuō),就相當(dāng)于是一個(gè)“名詞”。
于是,引用:
(function(形參){函數(shù)體})(實(shí)參)就和上面最普通的引用:
函數(shù)名(實(shí)參)的用法一樣容易理解了,是定義了一個(gè)匿名函數(shù)并且立即調(diào)用的意思。引用:
c = (function(which){return function(num){alert(num);which.b = num}})(this)定義了一個(gè)匿名函數(shù)并且立即調(diào)用,這個(gè)函數(shù)返回一個(gè)匿名函數(shù),返回的函數(shù)被賦名為c。
這里把 this對(duì)象 作為實(shí)參傳遞給 形參which,就把 abc實(shí)例對(duì)象 的引用提供給內(nèi)部的匿名函數(shù)了。
于是c就成為一個(gè)能夠訪問(wèn) abc實(shí)例對(duì)象 的函數(shù)了。
技術(shù)文,偶喜歡
也可以這樣寫
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
用bind方法
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
<script>
abc = function(){
this.a;
this.b;
}
abc.prototype = {
getData:function(){
var c = function(num){
alert(num);
this.b = num;
}
c('12345');
},
clearData:function(){
this.getData();
alert(this.b);
}
}
var d = new abc();
d.clearData();
</script>
這部分中:
var c = function(num){
alert(num);
this.b = num;
}
c('12345');
我想把得到的num傳給開(kāi)始定義好的this.b; 但這樣是不行的,不知怎么寫一下可以? 現(xiàn)在的格式不能改,能改的只有 c = function(){ 這里邊的東西}
可以這樣理解:引用:
function functionName(arg){……};
functionName(argvalue);以這種形式使用函數(shù),是大家最熟悉的。
“()”(括號(hào))可以把包裹在其中的語(yǔ)句變成一個(gè)“名詞”。引用:
(function(形參){函數(shù)體})把一個(gè)匿名函數(shù)包裹在括號(hào)里,使它對(duì)于代碼的其他部分來(lái)說(shuō),就相當(dāng)于是一個(gè)“名詞”。
于是,引用:
(function(形參){函數(shù)體})(實(shí)參)就和上面最普通的引用:
函數(shù)名(實(shí)參)的用法一樣容易理解了,是定義了一個(gè)匿名函數(shù)并且立即調(diào)用的意思。引用:
c = (function(which){return function(num){alert(num);which.b = num}})(this)定義了一個(gè)匿名函數(shù)并且立即調(diào)用,這個(gè)函數(shù)返回一個(gè)匿名函數(shù),返回的函數(shù)被賦名為c。
這里把 this對(duì)象 作為實(shí)參傳遞給 形參which,就把 abc實(shí)例對(duì)象 的引用提供給內(nèi)部的匿名函數(shù)了。
于是c就成為一個(gè)能夠訪問(wèn) abc實(shí)例對(duì)象 的函數(shù)了。
技術(shù)文,偶喜歡
也可以這樣寫
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
用bind方法
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
您可能感興趣的文章:
- JS 創(chuàng)建對(duì)象(常見(jiàn)的幾種方法)
- JavaScript 創(chuàng)建對(duì)象
- JavaScript 三種創(chuàng)建對(duì)象的方法
- ajax 異步獲取數(shù)據(jù)實(shí)現(xiàn)代碼 (js創(chuàng)建ajax對(duì)象)
- javascript轉(zhuǎn)換字符串為dom對(duì)象(字符串動(dòng)態(tài)創(chuàng)建dom)
- Javascript創(chuàng)建自定義對(duì)象 創(chuàng)建Object實(shí)例添加屬性和方法
- js中創(chuàng)建對(duì)象的幾種方式示例介紹
- javascript創(chuàng)建createXmlHttpRequest對(duì)象示例代碼
- Jquery通過(guò)JSON字符串創(chuàng)建JSON對(duì)象
- javascript對(duì)象的創(chuàng)建和訪問(wèn)
相關(guān)文章
借助JavaScript腳本判斷瀏覽器Flash Player信息的方法
做了一個(gè)小的Demo,在測(cè)試時(shí)發(fā)現(xiàn)經(jīng)常報(bào)錯(cuò),對(duì)此總結(jié)了一下借助JavaScript腳本判斷瀏覽器Flash Player信息的方法,需要的朋友可以參考下2014-07-07
詳解js的事件處理函數(shù)和動(dòng)態(tài)創(chuàng)建html標(biāo)記方法
本文主要對(duì)javascript的事件處理函數(shù),動(dòng)態(tài)創(chuàng)建html標(biāo)記的兩種方法進(jìn)行詳細(xì)介紹,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12
JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)截屏的5種方法小結(jié)
本文主要介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)截屏的5種方法小結(jié),感興趣的可以了解一下2009-10-10
JavaScript canvas實(shí)現(xiàn)七彩太陽(yáng)光暈效果
這篇文章主要為大家詳細(xì)介紹了JavaScript canvas實(shí)現(xiàn)七彩太陽(yáng)光暈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05

