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

