我正在尝试使用我的父函数来获取值。这可能是一个愚蠢的问题,但我还没有找到关于如何做到这一点的直接指导教程。
我知道在使用原型时可以
function handler (selector) {
return selector;
}
Object.prototype.alertLine = function () {
alert(this);}
handler('hello').alertLine();
仍然收到提醒。但我想知道是否有办法在父函数中指定对象,sting,number,例如
function handler(selector) {
if (typeof(selector) == 'string'){
return String(selector);
}
if (typeof(selector) == 'number') {
return Number(selector);
}
if (typeof (selector) == 'object') {
return Object(selector);
}
}
handler.prototype.alertLine = function () {
alert(this);
}
handler('hello').alertLine();
我不介意Handler
是否是一个对象,只有我使用这种方法传递值才有意义。
提前谢谢。
答案 0 :(得分:1)
如果你想做类似的事情,你需要实例化一个处理程序对象,而不是将它作为方法使用。你想要一个function constructor。
function Handler(selector){
if (typeof(selector) == 'string'){
this.selector = String(selector);
}
if (typeof(selector) == 'number') {
this.selector = Number(selector);
}
if (typeof (selector) == 'object') {
this.selector = Object(selector);
}
}
Handler.prototype.alertLine = function(){
alert(this.selector);
}
var h = new Handler("hello");
h.alertLine();
答案 1 :(得分:0)
“这个想法是让人每次在一行代码中重新初始化一个新对象,而不是var a = new Handler('hello'); a.alertLine();而不是我想要的更改为此var a = new Handler;然后每次引用一个新参数('hello')。alertLine()“
我不确定你为什么要这样做,但这样的事情可能对你有帮助:
var Handler = function() {
var fun = function() {}
fun.prototype.set = function(t) {this.t = t; return this;}
fun.prototype.alertLine = function(){ alert(this.t); }
return new fun;
}
var a = Handler();
a.set('foo').alertLine();