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

var instance = new func; 和 new func()有区别吗?

  •  
  •   cc7756789 · Jul 4, 2015 · 3492 views
    This topic created in 3964 days ago, the information mentioned may be changed or developed.
    ```javascript
    function Bird(){
    this.name = 'asaa';
    this.say = function (){
    return (this.name + 'hi!')
    }
    }

    var bob = new Bird;
    var bob2 = new Bird();
    bob.name;
    bob2.name;
    ```

    结果相同,但是加括号和不加有区别吗。如果是某些语言,加括号才能实例化。
    11 replies    2015-07-05 06:48:47 +08:00
    Wenwei
        1
    Wenwei  
       Jul 4, 2015
    javascript,在构造函数无需参数的情况下,是无区别的。如果需要参数,就需要括号。一般情况下,加上括号保证代码风格统一。
    yimity
        2
    yimity  
       Jul 4, 2015 via iPad
    你的标题和内容不符嘛。
    MineLucky
        3
    MineLucky  
       Jul 4, 2015
    同意1L
    otakustay
        4
    otakustay  
       Jul 4, 2015
    就上面的代码来说没区别,但有时候会有区别,比如

    var toString = new Number.toString; // TypeError
    var toString = new Number().toString; // [Function: toString]
    pH
        5
    pH  
       Jul 4, 2015
    这个都是访问对象里的name属性把?
    banri
        6
    banri  
       Jul 4, 2015
    有区别,带()表示的是函数的运行结果,不带()表示的是函数本身,这样理解就可以了

    参考一本很老但是对很多概念讲解很细致、易懂的书籍:JavaScript DOM高级程序设计
    ChiChou
        7
    ChiChou  
       Jul 4, 2015
    P.S. @otakustay 的代码第一行改成 (new Number).toString 就好了~
    sneezry
        8
    sneezry  
       Jul 4, 2015
    @banri 不过就楼主的问题来看这样说似乎并不恰当,new是创建一个实例,其实并不运行函数
    Biwood
        9
    Biwood  
       Jul 4, 2015
    @banri 用 new 操作时,不带 () 也会运行函数的,你可以试试。
    1楼是正解
    Jaylee
        10
    Jaylee  
       Jul 4, 2015
    @banri new 并不是运行函数
    banri
        11
    banri  
       Jul 5, 2015 via iPhone
    @sneezry
    @Biwood
    @Jaylee

    你们是对的…昨天没仔细看T_T
    我说的该是没有new的情况,这里不恰当
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1072 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 18:42 · PVG 02:42 · LAX 11:42 · JFK 14:42
    ♥ Do have faith in what you're doing.