Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Javascript模拟类_Javascript_Class - Fatal编程技术网

用Javascript模拟类

用Javascript模拟类,javascript,class,Javascript,Class,我正试图让我在Javascript中的生活变得简单一点(至少对我的工作环境而言)。我试图将所有Javascript对象创建方法移动到一个“类”中。我有以下代码(用于创建超链接): 这是在Javascript中模仿“类”的正确方法吗?我当前在执行new QuickDOM().A(“www.google.com”,“google”)时在Chrome中遇到以下错误: 有谁能给我一些建议,解释一下为什么这不起作用 注意:我使用的是作为指导。您正在添加实例方法,然后尝试在代码中静态访问它们 尝试将Quic

我正试图让我在Javascript中的生活变得简单一点(至少对我的工作环境而言)。我试图将所有Javascript对象创建方法移动到一个“类”中。我有以下代码(用于创建超链接):

这是在Javascript中模仿“类”的正确方法吗?我当前在执行
new QuickDOM().A(“www.google.com”,“google”)时在Chrome中遇到以下错误:

有谁能给我一些建议,解释一下为什么这不起作用


注意:我使用的是作为指导。

您正在添加实例方法,然后尝试在代码中静态访问它们

尝试将
QuickDOM.createElement(“a”)
替换为
this.createElement(“a”)


另外,分配实例方法的方式通常被认为是不好的做法。如果您这样做是为了拥有私有变量,我可以看到一些优点,但是如果您不是这样做的话,您可能希望将这些方法存在于原型上。

您正在添加实例方法,然后尝试在代码中静态访问它们

尝试将
QuickDOM.createElement(“a”)
替换为
this.createElement(“a”)


另外,分配实例方法的方式通常被认为是不好的做法。如果您这样做是为了拥有私有变量,我可以看到一些优点,但是如果您不是这样做的话,您可能希望将这些方法存在于原型上。

您正在添加实例方法,然后尝试在代码中静态访问它们

尝试将
QuickDOM.createElement(“a”)
替换为
this.createElement(“a”)


另外,分配实例方法的方式通常被认为是不好的做法。如果您这样做是为了拥有私有变量,我可以看到一些优点,但是如果您不是这样做的话,您可能希望将这些方法存在于原型上。

您正在添加实例方法,然后尝试在代码中静态访问它们

尝试将
QuickDOM.createElement(“a”)
替换为
this.createElement(“a”)


另外,分配实例方法的方式通常被认为是不好的做法。如果您以这种方式使用私有变量,我可以看到一些优点,但如果您不是,您可能希望将这些方法存在于原型上。

要使用
createElement
A
,您必须创建
QuickDOM
的实例:

var quickDOM = new QuickDOM();
var element = quickDOM.createElement("a");
var element = this.createElement("a");

A
方法中,您应该使用
this
而不是
QuickDOM

var quickDOM = new QuickDOM();
var element = quickDOM.createElement("a");
var element = this.createElement("a");

要使用
createElement
A
,必须创建
QuickDOM
的实例:

var quickDOM = new QuickDOM();
var element = quickDOM.createElement("a");
var element = this.createElement("a");

A
方法中,您应该使用
this
而不是
QuickDOM

var quickDOM = new QuickDOM();
var element = quickDOM.createElement("a");
var element = this.createElement("a");

要使用
createElement
A
,必须创建
QuickDOM
的实例:

var quickDOM = new QuickDOM();
var element = quickDOM.createElement("a");
var element = this.createElement("a");

A
方法中,您应该使用
this
而不是
QuickDOM

var quickDOM = new QuickDOM();
var element = quickDOM.createElement("a");
var element = this.createElement("a");

要使用
createElement
A
,必须创建
QuickDOM
的实例:

var quickDOM = new QuickDOM();
var element = quickDOM.createElement("a");
var element = this.createElement("a");

A
方法中,您应该使用
this
而不是
QuickDOM

var quickDOM = new QuickDOM();
var element = quickDOM.createElement("a");
var element = this.createElement("a");

A
方法中,您使用的是函数而不是对象的实例。此代码:

var element = QuickDOM.createElement("a");
将使用您所在的实例:

var element = this.createElement("a");
但是,由于您对该对象的多个实例没有任何用途,因此您应该只创建一个对象,而不是使用构造函数:

var QuickDOM = {
   createElement: function(tag)
   {
       var element;
       if (tag === undefined || typeof tag != 'string')
       {
           element = document.createElement("div");
       }
       else
       {
           element = document.createElement(tag);
       }
       return element;
    },

    A: function(hyperlink, content)
    {
       var element = this.createElement("a");
       element.setAttribute("href", hyperlink);
       element.innerHTML = content;
       return element;
    }
}
现在,您只需使用对象来调用方法:

var link = QuickDOM.A("www.google.com", "Google");

A
方法中,您使用的是函数而不是对象的实例。此代码:

var element = QuickDOM.createElement("a");
将使用您所在的实例:

var element = this.createElement("a");
但是,由于您对该对象的多个实例没有任何用途,因此您应该只创建一个对象,而不是使用构造函数:

var QuickDOM = {
   createElement: function(tag)
   {
       var element;
       if (tag === undefined || typeof tag != 'string')
       {
           element = document.createElement("div");
       }
       else
       {
           element = document.createElement(tag);
       }
       return element;
    },

    A: function(hyperlink, content)
    {
       var element = this.createElement("a");
       element.setAttribute("href", hyperlink);
       element.innerHTML = content;
       return element;
    }
}
现在,您只需使用对象来调用方法:

var link = QuickDOM.A("www.google.com", "Google");

A
方法中,您使用的是函数而不是对象的实例。此代码:

var element = QuickDOM.createElement("a");
将使用您所在的实例:

var element = this.createElement("a");
但是,由于您对该对象的多个实例没有任何用途,因此您应该只创建一个对象,而不是使用构造函数:

var QuickDOM = {
   createElement: function(tag)
   {
       var element;
       if (tag === undefined || typeof tag != 'string')
       {
           element = document.createElement("div");
       }
       else
       {
           element = document.createElement(tag);
       }
       return element;
    },

    A: function(hyperlink, content)
    {
       var element = this.createElement("a");
       element.setAttribute("href", hyperlink);
       element.innerHTML = content;
       return element;
    }
}
现在,您只需使用对象来调用方法:

var link = QuickDOM.A("www.google.com", "Google");

A
方法中,您使用的是函数而不是对象的实例。此代码:

var element = QuickDOM.createElement("a");
将使用您所在的实例:

var element = this.createElement("a");
但是,由于您对该对象的多个实例没有任何用途,因此您应该只创建一个对象,而不是使用构造函数:

var QuickDOM = {
   createElement: function(tag)
   {
       var element;
       if (tag === undefined || typeof tag != 'string')
       {
           element = document.createElement("div");
       }
       else
       {
           element = document.createElement(tag);
       }
       return element;
    },

    A: function(hyperlink, content)
    {
       var element = this.createElement("a");
       element.setAttribute("href", hyperlink);
       element.innerHTML = content;
       return element;
    }
}
现在,您只需使用对象来调用方法:

var link = QuickDOM.A("www.google.com", "Google");

哇!真不敢相信我错过了。谢谢-这是一个让人头脑空白的问题:哇!真不敢相信我错过了。谢谢-这是一个让人头脑空白的问题:哇!真不敢相信我错过了。谢谢-这是一个让人头脑空白的问题:哇!真不敢相信我错过了。谢谢-这是一个令人头脑空白的问题:DIn
tag===未定义| | typeof tag!='字符串“
第一个测试是冗余的<代码>标签类型!='字符串“
涵盖了它。您应该研究DOM API及其层次结构(Node->HtmleElement->TypeOfeElement,等等),因为您可能要复制它。哦,并不是所有的A元素都是链接,有些是锚,没有HREF,但是有一个名称字符串“第一个测试是冗余的<代码>标签类型!='字符串“涵盖了它。您应该研究DOM API及其层次结构(Node->HtmleElement->TypeOfeElement,等等),因为您可能要复制它。哦,并不是所有的A元素都是链接,有些是锚,没有HREF,但有一个名称