[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 delta降尺度计算的一些细节,有偿
- ¥15 Arduino红外遥控代码有问题
- ¥15 数值计算离散正交多项式
- ¥30 数值计算均差系数编程
- ¥15 redis-full-check比较 两个集群的数据出错
- ¥15 Matlab编程问题
- ¥15 训练的多模态特征融合模型准确度很低怎么办
- ¥15 kylin启动报错log4j类冲突
- ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
- ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序