我正在尝试更改代码,以便测试(" if condition(both))返回true
function X(x) {
this.x = x;
}
function Y(y) {
this.y = y;
}
var x = new X(1);
var y = new Y("abc")
if (y instanceof X)
console.log("true");
if (x instanceof Y)
console.log("true");

这是我到目前为止所尝试的,但我没有得到正确的结果。
function X(x) {
this.x = x;
}
function Y(y) {
this.y = y;
}
X.prototype = Object.create(Y.prototype);
X.constructor = X;
var x = new X(1);
var y = new Y("abc");
if (y instanceof X)
console.log("true");
if (x instanceof Y)
console.log("true");

我只能更改一个对象变量。不是两个。我正在尝试将结果都返回true。
答案 0 :(得分:0)
正如我之前所说,唯一的方法是骗取instanceof:
function A(){
return Object.create(B.prototype);
}
function B(){
return Object.create(A.prototype);
}
这样你就有了交叉继承,所以用A创建的所有元素都从B继承,反之亦然。 Try it