首页 > js中调用构造函数同时传递参数给原型对象的构造函数

js中调用构造函数同时传递参数给原型对象的构造函数

javascript中,B对象原型链设为A,他们的构造函数都需要参数。
能否在,调用B的构造函数的同时,把相同的参数赋值给继承的构造函数呢?

!(function () {
    var A = function (light) {
        this.light1 = light;
    };
    var B = function (light) {
        this.light = light;
    };
    //给B赋值的同时,给A赋值
    B.prototype = new A();
    var C = new B(123);
    console.log(C.light);
    console.log(C.light1);
})()

在调用B的构造函数克隆的时候,我传递了123参数。给light赋值。
能否,将这个参数传递给A的构造函数,给light1赋值呢?在Net中类似的代码如下

class A
    {
        internal A(string Param)
        {
            light1 = Param;
        }
        internal string light1 { get; set; }
    }
    class B : A
    {
        internal B(string Param) : base(Param)
        {
            light = Param;
        }
        internal string light { get; set; }
    }

目前找到的解决方案是,在A对象里面,返回一个修改方法,来调用这个方法进行修改。
不过,治标不治本。如果构造函数有其他逻辑操作,还是达不到效果。

var A = function (light) {
        this.light1 = light;
        return {
            setLight:function(param){
                this.light1 = param;
            }
        };
    };

!(function () {
    var A = function (light) {
        this.light1 = light;
    };
    var B = function (light) {
        this.light = light;
        A.call(this,light);//你需要手动调用A的构造方法
    };
    //给B赋值的同时,给A赋值
    B.prototype = new A();
    var C = new B(123);
    console.log(C.light);
    console.log(C.light1);
})()
【热门文章】
【热门文章】