V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
PurpleSun
V2EX  ›  问与答

《JavaScript 权威指南》6.1.4 节中的 inherit 函数是个 bug?

  •  
  •   PurpleSun · May 25, 2014 · 3898 views
    This topic created in 4354 days ago, the information mentioned may be changed or developed.

    第9行的`&&`应该是`||`吧
    如果是`&&`的话,if中的表达式永远为true了
    Supplement 1  ·  May 25, 2014
    update:
    "如果是`&&`的话,if中的表达式永远为true了" =>
    "如果是`&&`的话,if中的表达式永远为false了"
    Supplement 2  ·  May 26, 2014
    感谢@bravluna,@chairuosen,@leecade和@akfish的回答
    嗯,确实不是bug。。。
    ==========
    引用:"Object prototype may only be an Object or null"
    考虑到null也能作为原型,且number类型如1不能作为原型,可以这样重写:
    6 replies    2014-05-25 21:52:08 +08:00
    chairuosen
        1
    chairuosen  
       May 25, 2014
    要是或才是BUG。。。。
    akfish
        2
    akfish  
       May 25, 2014
    怎么可能永远为true。。。。。
    inherit(1);
    inherit("wtf");
    leecade
        3
    leecade  
       May 25, 2014
    Not a bug
    PurpleSun
        4
    PurpleSun  
    OP
       May 25, 2014
    update:
    "如果是`&&`的话,if中的表达式永远为true了" =>
    "如果是`&&`的话,if中的表达式永远为false了"

    我的理解是:`inhert`函数期望`t`的类型为`object`或`function`
    bravluna
        5
    bravluna  
       May 25, 2014
    不是 bug。
    !p && !q ==> !(p || q),这样好理解点儿吗?显然,function 对象和普通 object 都能做原型
    bravluna
        6
    bravluna  
       May 25, 2014
    其实 function 对象也是个 object,可是 typeof 运算符把它们两个分开了,所以这里要多处理一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2961 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 00:29 · PVG 08:29 · LAX 17:29 · JFK 20:29
    ♥ Do have faith in what you're doing.