[code="javascript"]
var F = function(){}
var f = new F();
alert(f.constructor);
[/code]
[code="javascript"]
function F(){}
var f = new F();
alert(f.constructor);
[/code]
上面两个打印出来的值不同,请问为什么?希望能给我constructor的详细资料。谢谢。
JavaScript里constructor的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- cyrilluce 2010-09-30 12:09关注
显示的不同,但实质是一样的
你试试这个就知道了:
[code="js"]
var A = function(){};
function B(){}
alert(A);
alert(B);
[/code]JS中的constructor本身本无多大用处,也可以被随意修改。
之所有创建出来的实例都能通过constructor访问到构造方法,是因为:
函数(F)在定义时,会自动创建一个空对象作为prototype属性,它的constructor属性为自身。
使用它(F)创建出来的实例本身并无constructor这个属性,而是它的原型链指向F.prototype,所以也能访问到。
[code="js"]
function F(){};
alert(F.prototype.constructor === F);
[/code]
如果你改了prototype属性,就会发现construcotr不好使了:
[code="js"]
function F(){};
F.prototype = {test:1};
var a = new F();
alert(a.constructor === Object.prototype.constructor);
[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
- ¥20 神经网络Sequential name=sequential, built=False
- ¥16 Qphython 用xlrd读取excel报错
- ¥15 单片机学习顺序问题!!
- ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
- ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
- ¥15 相敏解调 matlab
- ¥15 求lingo代码和思路
- ¥15 公交车和无人机协同运输
- ¥15 stm32代码移植没反应