自知其无知
不懂,慢慢懂。
BlogJava
首页
新随笔
新文章
联系
聚合
管理
posts - 2,comments - 2,trackbacks - 0
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
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
31
1
2
3
4
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(272)
2. love(271)
评论排行榜
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
阅读(413)
评论(0)
编辑
收藏
所属分类:
JavaScript
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
获取当前节点 - 通过事件来获取。
1、在Baidu空间中的发现
如何让 href 失效。
JS类 检测上传图片的大小,宽,高及格式检查 - 封装控件的思想
js 判断上传文件类型
javascript 弱弱的限制上传文件大小(一定要服务器再判断一遍。)
需要 fos 对象对客户端上传文件大小进行限制的例子
言简意赅的一篇 js 操作 dom
这是一个一应俱全的实例
基础:Javascript DOM操作: 子窗口操作父窗口table