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