基本构造函数 - 入门级Javascript

时间:2015-03-12 18:32:17

标签: javascript object constructor

我无法停止使用此代码遇到问题。我想我正在做一些极其错误的事情,我想要问那些知道他们正在做什么的人是最好的事情。

实际的“问题”或分配是创建一个简单的电视对象。它有三个特点。做一个。叫它。显示所有特征。然后就完成了。

我声明变量并构造一个构造函数。根据作业规则,这两件事必须保留在文件的标题中。

接下来是身体。我想用这些参数创建一个名为myTV的新电视对象。我创建了一个函数来重新调用数据。然后我主动回调数据。

在某些地方我有逻辑问题,可能的语法问题,谁知道还有什么。我长时间盯着同样的代码挣扎着,所以我要去拿点东西喝酒,然后像15点那样回来看看。

<html>
<head>
<script type="text/javascript">

    var manuTV;
    var sizeTV;
    var priceTV;

    function Television(manu, size, price){
        this.manuTV = manu;
        this.sizeTV = size;
        this.priceTV = price;
    }

</script>
</head>
<body>
<script type="text/javascript">

    var myTV = new Television("Sony", 52, 999);

    function DisplayInfo(){
        document.write("Television Manufacturer: " + this.manuTV + "<br />");
        document.write("Size(in inches)" + this.sizeTV + "<br />");
        document.write("Price:" + this.priceTV + "<br />");
    }

    myTV.displayInfo();

</script>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

您的DisplayInfo方法与Television的任何方式无关。你可以做两件简单的事情来使它发挥作用。您可以将DisplayInfo添加到Television的原型中。

Television.prototype.displayInfo = function(){
    document.write("Television Manufacturer: " + this.manuTV + "<br />");
    document.write("Size(in inches)" + this.sizeTV + "<br />");
    document.write("Price:" + this.priceTV + "<br />");
}

这会将方法添加到Television的原型中,以便任何Television都可以使用它(tv.displayInfo())。你也可以这样做:

function displayInfo(tv){
    document.write("Television Manufacturer: " + tv.manuTV + "<br />");
    document.write("Size(in inches)" + tv.sizeTV + "<br />");
    document.write("Price:" + tv.priceTV + "<br />");
}

Television对象传递给DisplayInfo,(请参阅添加到方法签名中的参数),然后使用tv代替this。然后像这样调用函数:

displayInfo(myTv);