Discuss
/
JavaScript
/
Dog Cat Cat Dog new Object
Dog Cat Cat Dog new Object
Topic sourceObject.create(
// inherit property
say:say, {
//own properties
name: {
value: 'kitty',
writable: false,
enumerable: true,
configurable: true
},
});
- 1
Junes_99994
const Cat = function() {
let flag = 0;
function say() {
return `Hello, ${this.name}!`
}
function Dog(name) {
console.log("Dog me");
return Object.create({
say: say,
constructor: Dog
}, {
name: {
value: name
}
});
}
function Cat(name) {
console.log("Cat me")
this.name = name
}
Cat.prototype = {
say: say,
constructor: Cat
};
return function() {
if (!(flag++ % 3)) return Dog(...arguments);
else return new Cat(...arguments);
}
}();