推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
pertersonvv

为何有些 JS 函数没有 prototype 属性?

  •  1
     
  •   pertersonvv · Jan 2, 2015 · 4655 views
    This topic created in 4176 days ago, the information mentioned may be changed or developed.


    不是说所有函数都有prototype属性的么:(

    kevinkim
        1
    kevinkim  
       Jan 2, 2015
    typeof console == 'object'
    pertersonvv
        2
    pertersonvv  
    OP
       Jan 2, 2015
    @kevinkim

    为何console.info函数无法扩展,看下图
    http://img.itc.cn/photo/j3UNf3NJfy1
    SoloCompany
        3
    SoloCompany  
       Jan 2, 2015
    > console.__proto__
    { log: [Function],
    info: [Function],
    warn: [Function],
    error: [Function],
    dir: [Function],
    time: [Function],
    timeEnd: [Function],
    trace: [Function],
    assert: [Function] }

    > console.__proto__.test = function() {this.log.apply(this, arguments);}
    [Function]

    > console.test(123)
    123
    undefined
    kevinkim
        4
    kevinkim  
       Jan 2, 2015
    @pertersonvv

    你的问题是console为什么没有prototype还是想要扩充console?

    如果是前者,那么console是个object,所以无prototype属性,但是你可以通过__proto__来查看它的内部原型引用。

    而如果是后者,可采用@SoloCompany的方法实现,或者你直接console.test = function(){};也可以~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   917 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:32 · PVG 05:32 · LAX 14:32 · JFK 17:32
    ♥ Do have faith in what you're doing.