如何在javascript中创建要与new一起使用的函数别名
说我有如何在javascript中创建要与new一起使用的函数别名,javascript,Javascript,说我有 function Person(birthDate){ // parameter accepting is unknown to the alias maker this.birthDate = birthDate; this.getAge = function() { return new Date().getFullYear() - this.birthDate.getFullYear(); }; }; 我只是简单地把函数名“Person
function Person(birthDate){ // parameter accepting is unknown to the alias maker
this.birthDate = birthDate;
this.getAge = function() {
return new Date().getFullYear() - this.birthDate.getFullYear();
};
};
我只是简单地把函数名“Person”给了一些不知道Person可以接受多少参数的人,并让他给Person取个别名
该别名的工作方式应与Person相同
var dave = new Alias_Person(new Date(1909, 1, 1)); // here number of parameters is unknown
dave.getAge(); //returns 100.
别名应该是什么
请注意,别名应该有自己的功能,而不仅仅是个人的引用
现在我是,
var Alias_Person = function(){
return Person.apply(null, arguments);
};
但这并不能返回正确的结果
编辑:我的最终目标是摆脱与日期一起使用的“new”。简单地使用Date()总是会生成当前日期和时间。我想要这样的东西
My_Date({parameters})返回与“new Date({parameters})”相同的结果您只需执行
var Alias_Person=Person
如果出于某种原因确实需要使用不同的函数,则需要重新分配原型,以便两个构造函数使用相同的对象进行继承
function Alias_Person() {
return Person.apply(this, arguments);
// ^^^^ also don't forget to pass the instance
}
Alias_Person.prototype = Person.prototype;
如果您不关心是否使用
new
调用Alias\u Person
,只想返回Person
实例,请查看,这可能会导致
function Alias_Person() {
var inst = Object.create(Person.prototype);
return Person.apply(inst, arguments) || inst;
}
您只需执行
var Alias\u Person=Person
如果出于某种原因确实需要使用不同的函数,则需要重新分配原型,以便两个构造函数使用相同的对象进行继承
function Alias_Person() {
return Person.apply(this, arguments);
// ^^^^ also don't forget to pass the instance
}
Alias_Person.prototype = Person.prototype;
如果您不关心是否使用
new
调用Alias\u Person
,只想返回Person
实例,请查看,这可能会导致
function Alias_Person() {
var inst = Object.create(Person.prototype);
return Person.apply(inst, arguments) || inst;
}
您只需执行
var Alias\u Person=Person
如果出于某种原因确实需要使用不同的函数,则需要重新分配原型,以便两个构造函数使用相同的对象进行继承
function Alias_Person() {
return Person.apply(this, arguments);
// ^^^^ also don't forget to pass the instance
}
Alias_Person.prototype = Person.prototype;
如果您不关心是否使用
new
调用Alias\u Person
,只想返回Person
实例,请查看,这可能会导致
function Alias_Person() {
var inst = Object.create(Person.prototype);
return Person.apply(inst, arguments) || inst;
}
您只需执行
var Alias\u Person=Person
如果出于某种原因确实需要使用不同的函数,则需要重新分配原型,以便两个构造函数使用相同的对象进行继承
function Alias_Person() {
return Person.apply(this, arguments);
// ^^^^ also don't forget to pass the instance
}
Alias_Person.prototype = Person.prototype;
如果您不关心是否使用
new
调用Alias\u Person
,只想返回Person
实例,请查看,这可能会导致
function Alias_Person() {
var inst = Object.create(Person.prototype);
return Person.apply(inst, arguments) || inst;
}
但是我不知道基函数的原型。。哦,现在看看editwell,我的最终目标是在新操作符中使用Date。如果我不在Date中使用new,它总是给出当前日期,我只想去掉“new”,解决方案不会;使用:函数My_Date(){var inst=Object.create(Date.prototype);return Date.apply(inst,arguments);}返回与DateAww相同的结果,这些技术。如果你在寻找假日期,看看吧,但我不知道基函数的原型。。哦,现在看看editwell,我的最终目标是在新操作符中使用Date。如果我不在Date中使用new,它总是给出当前日期,我只想去掉“new”,解决方案不会;使用:函数My_Date(){var inst=Object.create(Date.prototype);return Date.apply(inst,arguments);}返回与DateAww相同的结果,这些技术。如果你在寻找假日期,看看吧,但我不知道基函数的原型。。哦,现在看看editwell,我的最终目标是在新操作符中使用Date。如果我不在Date中使用new,它总是给出当前日期,我只想去掉“new”,解决方案不会;使用:函数My_Date(){var inst=Object.create(Date.prototype);return Date.apply(inst,arguments);}返回与DateAww相同的结果,这些技术。如果你在寻找假日期,看看吧,但我不知道基函数的原型。。哦,现在看看editwell,我的最终目标是在新操作符中使用Date。如果我不在Date中使用new,它总是给出当前日期,我只想去掉“new”,解决方案不会;使用:函数My_Date(){var inst=Object.create(Date.prototype);return Date.apply(inst,arguments);}返回与DateAww相同的结果,这些技术。如果你在寻找假日期,看看为什么你需要一个额外的函数(不仅仅是一个引用)?仅仅是为了一个实验。为什么你需要一个额外的函数(不仅仅是一个引用)?仅仅是为了一个实验。为什么你需要一个额外的函数(不仅仅是一个引用)?仅仅是为了一个实验。为什么你需要一个额外的函数(不只是参考)?只是为了实验。