实现这个变态的js

echoxue 2010-06-04 01:25:14
<SCRIPT LANGUAGE="JavaScript">
function User(name)
{
this.name=name;
this.getUserName = function()
{
return this.name;
} ;
function test(obj)
{
return obj;
}
}

window.onload=function()
{

var user = new User('test');
alert(user.getUserName());

alert(user.test('test'));//这个如何能实现啊,是否可以实现啊,我感觉应该可以的啊?请高手指点

}

</SCRIPT>
...全文
269 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
sugar8049 2010-06-07
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
xk1126 2010-06-05
  • 打赏
  • 举报
回复
this.getTest=function(obj)
{
return test(obj);
}
function test(obj){
return obj;
}
冰刀先生 2010-06-05
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
root_lee 2010-06-05
  • 打赏
  • 举报
回复
学习,学习
leemiki 2010-06-05
  • 打赏
  • 举报
回复
逛逛,学习下,O(∩_∩)O
rainsilence 2010-06-04
  • 打赏
  • 举报
回复
不用this,不用prototype,无法实现

function Test() {
function sayHello() {}

}


又可写成
function Test() {
var sayHello = new Function();
}

因此sayHello是无法再function外用的
这两种写法没有区别看懂否?
猿敲月下码 2010-06-04
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
<!--

function User(name)
{
this.name=name;
this.getUserName = function()
{
return this.name;
} ;
User.prototype.test = function(obj)
{
return obj;
}
}

window.onload=function()
{

var user = new User('test');
alert(user.getUserName());

alert(user.test('test2'));//这个如何能实现啊,是否可以实现啊,我感觉应该可以的啊?请高手指点

}

//-->
</SCRIPT>
rainsilence 2010-06-04
  • 打赏
  • 举报
回复
var obj = new Object();
obj.test = function() {};

以上那句话
,写在function里面就变成了
this.test = function() {};

函数指针必须要和对象或者与原型相关联,
function Test() {}

Test.prototype.test = function() {};


才能使用

function Test() {
function test() {}
}

这样的,跟对象毫无关系。外界无法引用到此函数指针。只能在Test内部使用。你还是放弃吧
echoxue 2010-06-04
  • 打赏
  • 举报
回复
再自己up
踏雪听雨 2010-06-04
  • 打赏
  • 举报
回复
//定义一个函数func1,具有属性p和方法A
function func1(){
this.p="func1-";
this.A=function(arg){
alert(this.p+arg);
}
}
//定义一个函数func2,具有属性p和方法B
function func2(){
this.p="func2-";
this.B=function(arg){
alert(this.p+arg);
}
}
var obj1=new func1();
var obj2=new func2();
obj1.A("byA"); //显示func1-byA
obj2.B("byB"); //显示func2-byB
foolbirdflyfirst 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 echoxue 的回复:]

引用 9 楼 foolbirdflyfirst 的回复:
想让user对象找到test方法( user.test() ),那么test方法必须置于user相关的prototype链中

JScript code
function User(name)
{
this.name=name;
this.getUserName = function()
{
return this.na……
[/Quote]
嗯,一个对象要找到某个方法,首先从本对象找,也就是把test变成对象本身的方法,即改成
function User(name)
{
this.name=name;
this.getUserName = function()
{
return this.name;
} ;
this.test = function(obj){return obj}
}

那么user对象就可以马上找到test方法,并执行,
如果不改成this.test= function(){}
那么user对象本身并没有test方法,在本对象找不到test方法的情况下,user对象就会顺着prototype链一层层找test方法。
艾瑞儿 2010-06-04
  • 打赏
  • 举报
回复
每个对象都有对应的原型函数prototype

User.prototype.test=function test(obj)
{
return obj;
}

这样就给User定义了一个方法,User的对象中都可以调用这个方法了
echoxue 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 foolbirdflyfirst 的回复:]
想让user对象找到test方法( user.test() ),那么test方法必须置于user相关的prototype链中

JScript code
function User(name)
{
this.name=name;
this.getUserName = function()
{
return this.name;
} ;

……
[/Quote]

这个是可以实现,但是还是把test写道外面的属性里.难道不能建立里面user function{}里面吗?用什么方法实现关联吗?

各位再指点........

谢谢!
rainsilence 2010-06-04
  • 打赏
  • 举报
回复
这个不能实现
function Test() {
function test2() {

}
}

test2对于外部来说是不可见的
new Test()的时候,由于test2并没有与Test的对象进行关联,所以外界也是不可引用的
但是在Test内部可以使用。你可以近似的看成是java中的private 方法
foolbirdflyfirst 2010-06-04
  • 打赏
  • 举报
回复
想让user对象找到test方法( user.test() ),那么test方法必须置于user相关的prototype链中
function User(name)
{
this.name=name;
this.getUserName = function()
{
return this.name;
} ;

}
User.prototype =
{
test : function(obj)
{
return obj;
}
}

北京不不 2010-06-04
  • 打赏
  • 举报
回复
错误~!
over~
北京不不 2010-06-04
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
function User(name)
{
this.name=name;
this.getUserName = function()
{
return this.name;
} ;
function test(name)
{
return name;
}
return test(name);
}

window.onload=function()
{

var user = new User('test');
alert(user.getUserName());

alert(User('sdf1'));
}
</script>
浪尖赏花 2010-06-04
  • 打赏
  • 举报
回复
受作用域限制,在外部不能直接访问内部变量
可以这样
         this.getTest=function(obj)
{
return test(obj);
}
function test(obj){
return obj;
}
qq591285015 2010-06-04
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
echoxue 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lihui_shine 的回复:]
this.test=function(obj)
{
return obj;
}
[/Quote]

呵呵,这个我知道的啊,我就是想怎么建立这个没有this的对象关联啊,难道没有办法吗?
加载更多回复(3)
JavaScript实例精通 1.本书1~20章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:、Dreamwave、Notepad、UltraEdit,或者其他文本编辑器 Web服务器:IIS 5.1及以上版本 2.本书所附光盘范例 第1章(\1) 示例描述:变量。 1_1.htm 变量声明。 1_2.htm 局部变量和全局变量。 1_3.htm JavaScript中的强制类型转换。 1_4.htm 在HTML中为JavaScript传递变量。 1_5.htm 在HTML中引用JavaScript的变量。 1_6.htm 比较undefined和"undefined"。 第2章(\2) 示例描述:客户端的流程控制。 2_1.htm 条件判断语句if…else 2_2.htm 多条件判断语句switch。 2_3.htm 嵌套循环语句for。 2_4.htm 循环语句while。 2_5.htm 控制循环过程break和continue。 2_6.htm 利用流程控制语句实现冒泡排序。 第3章(\3) 示例描述:字符串操作。 3_1.htm 连接字符串。 3_2.htm 在字符串中查找指定字符。 3_3.htm 提取字符串中的字串。 3_4.htm 替换字符串中的指定字符。 3_5.htm 将字符串分解为数组。 3_6.htm 字符串大小写的书写和判断。 第4章(\4) 示例描述:数组技术。 4_1.htm 创建空数组。 4_2.htm 创建带初始值的数组。 4_3.htm 将数组转换为字符串。 4_4.htm 遍历数组中的元素。 4_5.htm 合并两个数组。 4_6.htm 创建多维数组。 4_7.htm 数组排序。 第5章(\5) 示例描述:JavaScript快速处理日期时间的操作。 5_1.htm 获取当前日期并显示在HTML页中。 5_2.htm 分别获取当前时间的年月日时分秒。 5_3.htm 时间的水中倒影。 5_4.htm 简单的日历。 5_5.htm 标题栏显示日期。 5_6.htm 标题栏显示时间。 5_7.htm 不同时间的不同问候。 第6章(\6) 示例描述:JavaScript页面处理技巧。 6_1.htm 用JavaScript实现一个页面两份样式表。 6_2.htm 用JavaScript动态更换图像元素中的图像。 6_3.htm 利用搜索引擎引用来高亮页面关键字。 6_4.htm 使用匿名函数为定时器传递参数。 6_5.htm Web页面中的tooltip提示。 6_6.htm 在Web页面中控制其元素的选择状态。 第7章(\7) 示例描述:JavaScript的鼠标事件和键盘事件。 7_1.htm 按钮的鼠标单击事件。 7_2.htm 用鼠标点亮文本。 7_3.htm 渐显图片。 7_4.htm 跟随鼠标的图片。 7_5.htm 跟随鼠标的*。 7_6.htm 跟随鼠标的文字。 7_7.htm 判断Ctrl键是否被按下。 7_8.htm 设置页面中某按钮的热键。 第8章(\8) 示例描述:窗口大小自动化管理。 8_1.htm 按指定要求打开的窗口。 8_2.htm 控制窗口的打开和关闭。 8_3.htm 从天而降的窗口。 8_4.htm 打开慢慢变大的窗口。 8_5.htm 打开一个四面变大的窗口。 8_6.htm 页面左右分开。 8_7.htm 定时打开网页。 8_8.htm 自动打开新的窗口。 第9章(\9) 示例描述:JavaScript结合文字实现特殊页面。 9_1.htm 逐隐逐现的文字特效。 9_2.htm 超酷的文字特效。 9_3.htm 阴影文字的特殊效果。 9_4.htm 彩色文字的特殊效果。 9_5.htm 升降文字的特殊效果。 9_6.htm 打字效果的文字特效。 9_7.htm 淡入淡出的文字效果。 9_8.htm 炽热文字的特殊效果。 第10章(\10) 示例描述:页面中的链接地址个性化。 10_1.htm 按时消失的链接。 10_2.htm 带滚动提示的链接。 10_3.htm 动态变换的链接。 10_4.htm 滚动链接。 10_5.htm 不断闪动的链接。 10_6.htm 在按钮上显示不同的链接。 10_7.htm 带链接的滚动字幕。 第11章(\11) 示例描述:在HTML中用JavaScript控制图像页面。 11_1.htm 不停闪烁的图片。 11_2.htm 图片展示选项。 11_3.htm 图片的渐显播放。 11_4.htm 将图片固定在页面左上角。 11_5.htm 左右移动的图片。 11_6.htm 图像滚动公告版。 11_7.htm 跟随屏幕移动的图像。 第12章(\12) 示例描述:菜单特效。 12_1.htm 左键弹出式菜单 12_2.htm 推拉门式样的菜单。 12_3.htm 浮动顶部的菜单。 12_4.htm 浮动底部的菜单。 12_5.htm 渐显效果下拉菜单。 第13章(\13) 示例描述:背景特效。 13_1.htm 背景时钟。 13_2.htm 永远居中的背景图片。 13_3.htm 随机显示的背景图片。 13_4.htm 不停变换的背景颜色。 13_5.htm 背景颜色自己选。 第14章(\14) 示例描述:页面特效。 14_1.htm 页面全屏显示。 14_2.htm 显示器检测代码(给出提示)。 14_3.htm 浏览器检测后自动跳转相应界面。 14_4.htm 检测浏览器相应版本。 14_5.htm 页面停留时间1。 14_6.htm 页面停留时间2。 14_7.htm 检测浏览器类型并调用不同的背景音乐。 14_8.htm 将站点加入频道栏。 14_9.htm 将站点加入收藏夹。 14_10.htm 禁止察看源代码。 14_11.htm 自动弹出式窗口。 14_12.htm 自动滚屏。 第15章(\15) 示例描述:JavaScript操作表格和DOM。 15_1.htm 动态添加表格。 15_2.htm 获取表格的某行。 15_3.htm 获取某个表格的单元格。 15_4.htm 锁定表格的表头。 15_5.htm 简单的表格排序。 15_6.htm 表格翻页。 第16章(\16) 示例描述:AJAX应用特效。 16_1.htm 无刷新实现图片切换。 16_2.htm 很酷的导航特效。 16_3.htm 加载一个文本文件到一个HTML元素中。 16_4.htm 使用XML HTTP载入一个XML文件。 16_5.htm 通过XML HTTP做一个HEAD的请求。 16_6.htm 通过XML HTTP做一个特殊HEAD的请求。 16_7.htm 显示XML数据表格。 16_8.htm 服务器端的动态建议。 第17章(\17) 示例描述:Prototype基础应用。 17_1.htm 使用$()得到html元素。 17_2.htm 使用$F()返回表单输入控件的值。 17_3.htm 使用$A()将单个的参数转换成Array对象。 17_4.htm 使用$H()把一些对象转换成Hash对象。 17_5.htm 使用$R()创建新的对象域。 17_6.htm 使用Ajax.Request类进行异步调用。 17_7.htm 使用Ajax.Updater类填充html。 第18章(\18) 示例描述:jQuery应用特效。 18_1.htm 动态表格和动态表单。 18_2.htm 输入框获得焦点、点击、划过时全选。 18_3.htm CSS 样式表动态选择。 18_4.htm jQuery的选择器之变态演示。 18_5.htm 让链接打开一个新窗口。 18_6.htm 键盘控制选择表格并编辑。 18_7.htm 下拉框的值同时给文本框和文本域。 18_8.htm 基于jQuery的折叠菜单。 18_9.htm 可编辑的表格数据。 第19章(\19) 示例描述:其他特效。 19_1.htm 中文日期。 19_2.htm 现在的日期及星期。 19_3.htm 带链接的滚动字幕。 19_4.htm 垂直滚动公告板。 19_5.htm 关闭窗体。 19_6.htm 分时问候。 19_7.htm 密码保护页面。 19_8.htm 当前的时间。 第20章(\20) 示例描述:正则表达式。 20_1.htm 校验是否全由数字组成。 20_2.htm 校验登录名。 20_3.htm 校验用户姓名。 20_4.htm 校验普通电话、传真号码。 20_5.htm 校验中文字符。 20_6.htm 校验邮件地址的有效性。 20_7.htm 校验腾讯QQ号。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧