自知其無知
不懂,慢慢懂。
BlogJava
首頁
新隨筆
新文章
聯系
聚合
管理
posts - 2,comments - 2,trackbacks - 0
<
2025年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
1. 我要讀書。
2. 路.慢慢走
莫心急。
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
給我留言
查看公開留言
查看私人留言
隨筆檔案
(2)
2009年11月 (2)
文章分類
(109)
Ajax(3)
Java(2)
Java Web(23)
JavaScript(36)
My SQL
Oracle
SQL Server(1)
Tomcat(1)
人生感悟(17)
生活常識(1)
電腦常識(24)
設計與思考(1)
文章檔案
(89)
2008年12月 (89)
搜索
最新評論
1.?re: 仿 hao123 的郵箱登陸
很好
--王立芹
2.?re: 比較經典的一個問題。 - 局域網內設置不同用戶對不同文件夾的訪問權限
你好 我也需要這方面的資料 我弄了很久都沒弄好,可不可以幫我弄下!!
我qq 46452150 希望聯系。
ps: 我單位的情況和你的一樣
--11
閱讀排行榜
1.?Pic(282)
2.?love(280)
評論排行榜
1.?love(0)
2.?Pic(0)
當存在相同的變量以及方法時,js 調用順序
<
script type
=
"
text/javascript
"
>
Object.extend
=
function
(destination,source)
{
for
(property
in
source)
{
alert(source[property]);
destination[property]
=
source[property];
}
return
destination;
}
Object.prototype.extend
=
function
(object)
{
return
Object.extend.apply(
this
,[
this
,object]);
}
function
base()
{}
base.prototype
=
{
initialize:
function
()
{
this
.oninit();
//
調用了一個虛方法
}
}
/**/
/*
如果要讓下面的代碼繼續運行,那么這一句必須被注釋掉,也就是我們的 base 類添加了這個方法后,
class1 在進行 extend (繼承) 時,會報錯。為什么?
*/
base.prototype.oninit
=
function
()
{
alert('方法 oninit() 被調用');
}
var
base
=
new
base();
//
base 被實例化了(關鍵點是,只要在調用的時候,oninit()方法被定義出來了就行!)
base.oninit();
/**/
/*
*/
//
讓一個 class 繼承于 base 并實現其中的 oninit 方法
function
class1()
{}
class1.prototype
=
(
new
base()).extend(
{
oninit :
function
()
{
//
實現抽象基類的 oninit 虛方法
//
oninit 函數實現
}
}
);
//
問題: 為什么 base 中定義了,并實現了 oninit 方法后,進行 繼承后,會產生錯誤?
/**/
/*
當然從語義上面來講,繼承后,肯定是對抽象方法的實現。但是,為什么語法上有這個限制,
而且,我們應該知道,子類是可以對父類方法進行重寫的。或許有人站出來說,我將 java 與 js
弄混淆了,但是,請注意,我這只是為了發現問題,請告訴我,為什么?
*/
/**/
/*
一個神奇的解決方法:
1. 用 editplus 打開
2. 找到 var base = new base(); 這個標準的在39 行 以及 base.oninit();
3. 將 變量 base 改為 任何其他的變量,比如:
var ba = new base(); ba.oninit();
問題解決完畢!!
也就是說, js 是首先搜索當前作用域對象的變量,然后再查找方法塊的!!!
比如先查找 window.base 變量,再查找 window.base() 方法,
這樣的話,
下面的 class1.prototype = (new base()).extend{
}
這里的 new base() 就是先將 base 當做變量,而不是方法!!!
關于這個問題,我們可以做一個簡單的測試!
var alert = alert(123); // 產生錯誤,頁面沒有任何顯示.
alert(333);
*/
</
script
>
posted on 2008-12-06 00:22
CopyHoo
閱讀(417)
評論(0)
編輯
收藏
所屬分類:
JavaScript
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
獲取當前節點 - 通過事件來獲取。
1、在Baidu空間中的發現
如何讓 href 失效。
JS類 檢測上傳圖片的大小,寬,高及格式檢查 - 封裝控件的思想
js 判斷上傳文件類型
javascript 弱弱的限制上傳文件大小(一定要服務器再判斷一遍。)
需要 fos 對象對客戶端上傳文件大小進行限制的例子
言簡意賅的一篇 js 操作 dom
這是一個一應俱全的實例
基礎:Javascript DOM操作: 子窗口操作父窗口table
Copyright ©2025 CopyHoo Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
乌什县
|
旬阳县
|
禹州市
|
泗水县
|
万州区
|
徐州市
|
津市市
|
陈巴尔虎旗
|
五华县
|
荔波县
|
沙湾县
|
灌云县
|
化州市
|
沅江市
|
洪雅县
|
清丰县
|
昆明市
|
花垣县
|
绥滨县
|
威宁
|
通道
|
永平县
|
义马市
|
天祝
|
民权县
|
泽库县
|
平江县
|
晋州市
|
四会市
|
涿州市
|
抚州市
|
安塞县
|
承德市
|
黄山市
|
剑阁县
|
永登县
|
阿拉善盟
|
东平县
|
确山县
|
政和县
|
黄冈市
|