Discuss / JavaScript / Dog Cat Cat Dog new Object

Dog Cat Cat Dog new Object

Topic source

Junes_99994

#1 Created at ... [Delete] [Delete and Lock User]

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);

                }

            }();

Junes_99994

#2 Created at ... [Delete] [Delete and Lock User]

Object.create(

    // inherit property

    say:say, {

        //own properties

        name: {

            value: 'kitty',

            writable: false,

            enumerable: true,

            configurable: true

        },

    });


  • 1

Reply