js 對象外部訪問或者調(diào)用問題
更新時間: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ù)包裹在括號里,使它對于代碼的其他部分來說,就相當(dāng)于是一個“名詞”。
于是,引用:
(function(形參){函數(shù)體})(實參)就和上面最普通的引用:
函數(shù)名(實參)的用法一樣容易理解了,是定義了一個匿名函數(shù)并且立即調(diào)用的意思。引用:
c = (function(which){return function(num){alert(num);which.b = num}})(this)定義了一個匿名函數(shù)并且立即調(diào)用,這個函數(shù)返回一個匿名函數(shù),返回的函數(shù)被賦名為c。
這里把 this對象 作為實參傳遞給 形參which,就把 abc實例對象 的引用提供給內(nèi)部的匿名函數(shù)了。
于是c就成為一個能夠訪問 abc實例對象 的函數(shù)了。
技術(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ù)包裹在括號里,使它對于代碼的其他部分來說,就相當(dāng)于是一個“名詞”。
于是,引用:
(function(形參){函數(shù)體})(實參)就和上面最普通的引用:
函數(shù)名(實參)的用法一樣容易理解了,是定義了一個匿名函數(shù)并且立即調(diào)用的意思。引用:
c = (function(which){return function(num){alert(num);which.b = num}})(this)定義了一個匿名函數(shù)并且立即調(diào)用,這個函數(shù)返回一個匿名函數(shù),返回的函數(shù)被賦名為c。
這里把 this對象 作為實參傳遞給 形參which,就把 abc實例對象 的引用提供給內(nèi)部的匿名函數(shù)了。
于是c就成為一個能夠訪問 abc實例對象 的函數(shù)了。
技術(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轉(zhuǎn)換字符串為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)建和訪問
相關(guān)文章
JavaScript setinterval延遲一秒解決方案
這篇文章主要介紹了JavaScript setinterval延遲一秒解決方案,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-09-09bootstrap daterangepicker漢化以及擴展功能
這篇文章主要為大家詳細 介紹了bootstrap daterangepicker漢化以及擴展功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06JavaScript執(zhí)行環(huán)境及作用域鏈實例分析
這篇文章主要介紹了JavaScript執(zhí)行環(huán)境及作用域鏈,結(jié)合實例形式分析了JavaScript執(zhí)行環(huán)境及作用域鏈的相關(guān)概念、功能與使用技巧,需要的朋友可以參考下2018-08-08JavaScript基礎(chǔ)篇(6)之函數(shù)表達式閉包
這篇文章主要介紹了javascript基礎(chǔ)篇(6)之函數(shù)表達式閉包的相關(guān)資料,需要的朋友可以參考下2015-12-12用console.table()調(diào)試javascript
昨天我了解到Chrome調(diào)試工具一個小巧的調(diào)試方法,在WDCC期間, Marcus Ross(@zahlenhelfer) 介紹了,chrome調(diào)試工具各種調(diào)試方法,這個只是其中一種,現(xiàn)在我來給大家秀下。2014-09-09JavaScript中你不知道的Object.entries用法
大家應(yīng)該都知道,Object.entries()方法返回一個給定對象自身可枚舉屬性的鍵值對數(shù)組,其排列與使用 for...in 循環(huán)遍歷該對象時返回的順序一致,這篇文章主要給大家介紹了關(guān)于JavaScript中你不知道的Object.entries用法的相關(guān)資料,需要的朋友可以參考下2021-10-10