Javascript中使用原型的继承

Inheritance in Javascript using prototype

本文关键字:继承 原型 Javascript      更新时间:2023-09-26

我试图使用我的父函数有一个值。这可能是一个愚蠢的问题,但我还没有找到一个直截了当的教程。

我知道,当使用原型,它是可能的

function handler (selector) {
    return selector;
}
 Object.prototype.alertLine = function () {
        alert(this);}
handler('hello').alertLine();

,仍然收到警报。但是我想知道是否有一种方法可以在父函数中指定对象,例如

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是否是一个对象,只有当我使用这个方法传递值时才重要。

提前感谢。

如果您想做类似的事情,您需要实例化一个handler对象,而不是将其作为方法使用。你需要一个函数构造函数。

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

"这个想法是让人在一行代码中每次重新初始化一个新对象,所以不是var a = new Handler('hello');a.alertLine ();我想改成var a = new Handler;然后每次引用一个新参数a('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(); 
http://jsfiddle.net/herostwist/yPSpT/