js访问原型的问题

xuhaijin 2011-09-28 11:48:30

var tfn = function () {
tfn.prototype = {
a: "aaaaaaaaa",
b: "bbbbbbbb"
}
}

请问如何访问tfn里的a??
以下方式都不行。。。。
1、tfn.prototype.a 结果为undefined
2、var c=tfn.prototype;
c.a 结果为undefined
3、var c=new tfn();
c.a 结果为undefined
...全文
144 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
豆虫 2011-09-28
  • 打赏
  • 举报
回复
var tfn = function () {
tfn.prototype = {
a: "aaaaaaaaa",
b: "bbbbbbbb"
}
}

而这种写法 你new的时候 把原型给改了 所以要想访问到a 要再new一次
换句话说 也要new两次才能够访问到a属性和b属性
豆虫 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xuhaijin 的回复:]

JScript code

var tfn = function () {
tfn.prototype.a = "aaaaaaaaa";
}

var newProto = new tfn();
alert(newProto.a)


那为什么这样就行呢?
[/Quote]
你这样new的时候 只是去改变了tfn的原型上的a属性 并没有对原型进行修改 所以你的原型上经过修改后是有a属性的 能访问到是必然的
hch126163 2011-09-28
  • 打赏
  • 举报
回复
在此之前,从没见过这样写的!!!

var tfn = function () {
tfn.prototype = {
a: "aaaaaaaaa",
b: "bbbbbbbb"
}
}
只是定义一个变量 tfn. 没有调用。当然结果是 undefined

程序逻辑最基本的3点

1、顺序
2、条件
3、循环

xuhaijin 2011-09-28
  • 打赏
  • 举报
回复

var tfn = function () {
tfn.prototype.a = "aaaaaaaaa";
}

var newProto = new tfn();
alert(newProto.a)

那为什么这样就行呢?
豆虫 2011-09-28
  • 打赏
  • 举报
回复
可以访问到是没有问题的 但是我不认同楼主的写法 当然我可能不了解楼主的想法是神马
1、先说基于你的代码如何实现你的要求
var tfn = function () {
tfn.prototype = {
a: "aaaaaaaaa",
b: "bbbbbbbb"
}
}

tfn();
var newProto = new tfn();
alert(newProto.a)

2、个人意见
楼主的代码中 只要执行过这个函数 其原型就会发生改变 有什么特殊用法非要让楼主这样更改原型链么?
javascript_2011 2011-09-28
  • 打赏
  • 举报
回复
5楼正解,为啥要放到function里面。
BLUE_LG 2011-09-28
  • 打赏
  • 举报
回复

var tfn=new Function();
tfn.prototype = {
a: "aaaaaaaaa",
b: "bbbbbbbb"
};
var c=new tfn();
alert(c.a);
BLUE_LG 2011-09-28
  • 打赏
  • 举报
回复
tfn.prototype放到外面的吧
JParser 2011-09-28
  • 打赏
  • 举报
回复
将prototype的赋值放在function的里面,都没执行function,赋值怎么能赋上呢?

蓝色_冰点 2011-09-28
  • 打赏
  • 举报
回复
    function tfn() {}  //定义这个函数,最好不要用 var tfn=function (){} 这两种方式还是有区别的.
(function(){ //闭一下包,不闭也行
tfn.prototype = {
a: "aaaaaaaaa",
b: "bbbbbbbb"
};
//} 不小心多了个括号....
})();
var c=new tfn();
alert(c.a);
蓝色_冰点 2011-09-28
  • 打赏
  • 举报
回复

var tfn = function () {
tfn.prototype = {
a: "aaaaaaaaa",
b: "bbbbbbbb"
}
}

如果有实例化的代码 var c=new tfn();
那么每次实例化一个对象,都会去改变tfn的prototype,你想干嘛?

给你个参考

function tfn() {} //定义这个函数,最好不要用 var tfn=function (){} 这两种方式还是有区别的.
(function(){ //闭一下包,不闭也行
tfn.prototype = {
a: "aaaaaaaaa",
b: "bbbbbbbb"
}
}
})();
JavaScript极速狂飙:组合拼接字符串的效率JavaScript极速狂飙:CSS样式表的背景渲染效率JavaScript面向对象的支持--(1)JavaScript面向对象的支持--(2)JavaScript面向对象的支持--(3)JavaScript面向对象的支持--(4)JavaScript面向对象的支持--(5)JavaScript面向对象的支持--(6)JavaScript精简学习1:基础知识JavaScript精简学习2:浏览器输出JavaScript精简学习3:图像JavaScript精简学习4:表单事半功倍之Javascript--(1)事半功倍之Javascript--(2)事半功倍之Javascript--(3)事半功倍之Javascript--(4)JavaScript教程--从入门到精通--(1)JavaScript教程--从入门到精通--(2)JavaScript教程--从入门到精通--(3)JavaScript教程--从入门到精通--(5)JavaScript教程--从入门到精通--(6)JavaScript教程--从入门到精通--(7)JavaScript教程--从入门到精通--(8)JavaScript教程--从入门到精通--(9)悟透JavaScript(李站老师)-编程的快乐悟透JavaScript(李站老师)-初看原型悟透JavaScript(李站老师)-对象素描悟透JavaScript(李站老师)-放下对象悟透JavaScript(李站老师)-构造对象悟透JavaScript(李站老师)-原型扩展用javascript操作 asp .net TextBox控件用javascript操作 asp .net Label控件用javascript操作 asp .net TextBox控件 下用javascript操作asp.net label控件 外一篇用javascript改变onclick调用的函数用JavaScript加密保护网站页面用Javascript检测网速的方法用Javascript评估用户输入密码的强度用JavaScript实现仿Windows关机效果用javascript实现进度条用javascript怎样实现图片模糊效果《ExtJS2.0实用简明教程》之Border区域布局《ExtJS2.0实用简明教程》之Ext类库简介《ExtJS2.0实用简明教程》之布局概述《ExtJS2.0实用简明教程》之获得ExtJS《ExtJS2.0实用简明教程》之应用ExtJSjs访问xml之遍历节点树js访问xml之创建xmlDocumentjs访问xml之根节点操作js访问xml之节点操作(1)js访问xml之节点操作(2) js访问xml之节点对象属性和方法js访问xml之删除一个book元素节点js访问xml之添加一个book元素节点【JS】兼容ff的加入收藏和设为首页【补】【sina】绕过sina博客的限制,超级BT执行Javascript【blog】介绍一下给sina博客加背景音乐的办法【Blog】再次解说博客加音乐的办法张孝祥JavaScript教程笔记:HTML基础张孝祥JavaScript教程笔记:HTML基础(二)张孝祥JavaScript教程笔记:HTML基础(三)-URL,图像标签,图像地图JavaScript经典效果集锦(一)JavaScript经典效果集锦(二)JavaScript经典效果集锦(三)Javascript技术技巧大全(一)Javascript技术技巧大全(二)Javascript技术技巧大全(三)Javascript技术技巧大全(四)Javascript技术技巧大全(五)JavaScript[对象.属性]集锦之一

87,997

社区成员

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

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