Javascript 对象是如何获取原型的属性方法的?

qqq123 2007-06-23 12:42:22
function ClassA(){ }
ClassA.prototype.flag = "A";
function ClassB(){ }

function run()
{
var a = new ClassA();
alert(a.flag);
alert(a.prototype);
alert(a.constructor);
a.constructor = ClassB;

alert(a.prototype);
alert(a.constructor);
alert(a.flag);
}
上面这段代码的执行结果是:

undefined
function ClassA(){ }
undefined
function ClassB(){ }
A

显然,对象a不是动过prototype属性(因为不存在undefined)和constructor属性(改变后a依然可以找到falg)来查早prototype对象的。所以非常奇怪a如何找flag的呢?




...全文
261 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
adverse 2007-06-24
  • 打赏
  • 举报
回复
个人认为可能是a对象没有重新被构造,所以除了你改了的属性其他的都没有变。想来可能是js里把constructor做为一个对象的普通属性来看待的。
meizz 2007-06-24
  • 打赏
  • 举报
回复
prototype 是游离于ClassA对象之外的一个扩展
你把 a.constractor 改成 ClassB 只是把这个类的结构体变了,而没有改 prototype
dh20156 2007-06-23
  • 打赏
  • 举报
回复
ClassA.prototype.flag = "A";
-->
ClassA.prototype = {flag:"A"}
qqq123 2007-06-23
  • 打赏
  • 举报
回复

ClassA.prototype.flag = "A";
改为
ClassA.prototype = {flag:"A"};
ClassA.prototype.constructor = ClassA;
跟我的问题有什么关系?我实在想不通。dh20156(风之石)可否多给一些提示。
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,910

社区成员

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

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