gpt4 book ai didi

javascript - 这是 Javascript Prototype 属性的预期行为吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:08 24 4
gpt4 key购买 nike

function math() { return 'x' } 

math.prototype.sqrt = function(a){return Math.sqrt(a)}

var x = new math();
x.sqrt(9); //gives 3

function math1() { return {} }

math1.prototype.sqrt = function(a){return Math.sqrt(a)}

var y = new math1();
y.sqrt(9); //throws javascript error "TypeError: Object #<Object> has no method 'sqrt'"

最佳答案

通常情况下,从构造函数返回一个值是没有什么可实现的。看起来,如果返回一个 JavaScript 原语,如数字或字符串,使用 new (var y = new math1();) 的对象实例化过程就像你想的那样expect,忽略这个值。

但是,如果您返回一个 JavaScript 对象,例如 {},使用 new 的实例化过程似乎不会以相同的方式工作。相反,您的变量 y 加载了返回的对象,而不是 math1 的新实例。

关于javascript - 这是 Javascript Prototype 属性的预期行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com