相关疑难解决方法(0)

Javascript Object.create无法在Firefox中运行

我总是在Firefox(3.6.14)中得到以下异常:

TypeError: Object.create is not a function
Run Code Online (Sandbox Code Playgroud)

这非常令人困惑,因为我非常确定它是一个功能,并且代码在Chrome上按预期工作.

负责此行为的代码行如下:

Object.create( Hand ).init( cardArr );
Object.create( Card ).init( value, suit );
Run Code Online (Sandbox Code Playgroud)

如果有人想看到所有代码,它来自扑克图书馆gaga.js:https://github.com/SlexAxton/gaga.js

也许有人知道如何让它在Firefox中运行?

javascript object-create

4
推荐指数
1
解决办法
3281
查看次数

通过 Object.create 从原始值继承 JavaScript 对象

使用 Object.create() 继承 JavaScript?

或者

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

建议 Object.create() 是在 ES5 中设计的,旨在提供一种简单的方式来继承 JavaScript 对象。

这按预期工作,如下所示:

const A = function() {};
A.prototype.x = 10;
A.prototype.say = function() {
  console.log(this.x);
};

const a = new A();
a.say(); //10

const b = Object.create(a);
b.say(); //10
Run Code Online (Sandbox Code Playgroud)

但是,现在我想继承一个对象,例如 Object(3).

出于某种原因,人们(在大多数情况下,用某个问题很难解决问题的人)倾向于问“你为什么需要这个?” 这对规范来说真的无关紧要,因此,可能最好指定。

我尝试创建一种根据需要为任何 JavaScript 对象提供类型的方法。

幸运的是,每个原始值3都可以通过Object(3).

现在,我尝试了Object.create在这种情况下如何工作,但它不起作用。

const a = Object(3);

console.log(
  a
);//[Number: 3]
console.log(
  a.toString()
);// 3

const b = Object.create(a);

console.log(
  b
);//{}
console.log(
  Object.getPrototypeOf(b)
);
console.log( …
Run Code Online (Sandbox Code Playgroud)

javascript inheritance object prototypal-inheritance prototype-chain

1
推荐指数
1
解决办法
197
查看次数