如何使函数的别名与javascript中的new一起使用
How to make alias of Function to be used with new in 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"给了一些不知道Person能接受多少个参数的人,并让他把Person作为的别名
该别名的工作方式应与Person 相同
var dave = new Alias_Person(new Date(1909, 1, 1)); // here number of parameters is unknown
dave.getAge(); //returns 100.
别名应该是什么?
请注意,别名应该有自己的功能,而不仅仅是Person的引用
目前我做,
var Alias_Person = function(){
return Person.apply(null, arguments);
};
但这并没有得到正确的结果。
编辑:我的最终目标是摆脱与Date一起使用的"new"。简单地使用Date()总是得到当前的日期和时间。我想要这种
My_Date({parameters})返回与"new Date({arameters})"相同的结果
您可以简单地执行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_Person
,而只想返回一个Person
实例,请查看带有';新';操作人员这可能吗?,这可能会导致类似的情况
function Alias_Person() {
var inst = Object.create(Person.prototype);
return Person.apply(inst, arguments) || inst;
}
相关文章:
- 如何使函数的别名与javascript中的new一起使用
- jQuery中的new Image()做什么
- 如何使用rails 3.1.4中的FormBuilder.new构建表单生成器对象
- JavaScript's`new Date().getTime()`获取Windows中的本地时间
- new和amp;javascript中的直接赋值
- 字符串到 Firefox 扩展中的 javascript(没有 eval()、setTimeout 或 new Func
- javascript中的奇怪语法:“sth”+ + new Date
- 在javascript中使用“new”关键字的替代方案是什么?
- JavaScript 中的 var num=30 和 var num=new Number(30) 有什么区别
- 将参数传递给使用 JavaScript 中的 new 通过内联调用创建的对象
- Javascript中“new”关键字的限制
- javascript中的new Data返回不同的日期
- 在本例中使用new运算符的目的是什么
- 函数中的Javascript“new”关键字
- 用于获取javascript、Date()或new Date()中的当前时间
- 请解释为什么以及如何+new Date();作为'变通方法'用于IE8或更低版本中的Date.now()
- Javascript中的new Image()出现问题
- 向使用javascript中的new function关键字创建的函数传递参数
- 字符串中的Firefox new Date()构造本地时区的时间
- TypeError:c在使用DataTable中的new entry Form保存新条目时未定义