ankeycheng 2013-02-23 02:19 采纳率: 100%
浏览 1216
已采纳

在js中,为什么要往函数的原型上添加方法/属性,而不在自己本身上面添加呢?

如题,在js中如果我想往String这个构造函数里面添加一个首字母大写的toInitialUpperCase方法,为什么人们要往String的prototype里面添加,
[code="js"]String.prototype.toInitialUpperCase = function () { #code... }[/code]
而不是向String本身添加呢?
[code="js"]String.toInitialUpperCase = function () { #code... }[/code]
如果在原型上面添加方法,感觉又要跑多一节原型链,还不如在本身上面加来得直接,那为什么还要在原型添加呢?

  • 写回答

6条回答 默认 最新

  • iteye_5246 2013-02-23 09:23
    关注

    哥们
    javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。
    看下面的demo就明白了
    [code="javascript"]
    function baseClass()
    {
    this.showMsg = function()
    {
    alert("baseClass::showMsg");

    }

    }

    function extendClass()
    {

    }

    extendClass.prototype = new baseClass();

    instance = new extendClass();

    instance.showMsg(); // 显示baseClass::showMsg[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器