JavaScript 对象函数

标签 javascript object

我正在尝试学习和理解 javascript 中的对象,并提出了以下脚本:

    jQuery(document).ready(function(){
    var test = new Project('Anton');
    $('#btn_add_project').click(function(){
        test.addElement();
    });
});
function Project(name)
{
    this.panel = $('#worksheet_panel');
    this.name = name;
    function changeName(name)
    {
        this.name = name;
    }

    function addElement()
    {
        this.element =
            '<div id="1" class="col-md-3 table-bordered worksheet_overall_box" draggable="true" ondragstart="drag(event)">'+
                '<div class="table-bordered title_box">'+
                '<h4 class="title text-center worksheet_title">Dansk handicap</h4>'+
                '</div>'+
                '<div class="worksheet_box">'+
                '    <div class="list-group ">'+
                '        <a href="#" class="list-group-item">'+
                '            <h5 class="list-group-item-heading">Marc</h5>'+
                '            <p class="list-group-item-text">...</p>'+
                '        </a>'+
                '    </div>'+
                '    <div class="list-group ">'+
                '        <a href="#" class="list-group-item">'+
                '            <h5 class="list-group-item-heading">'+name+'</h5>'+
                '            <p class="list-group-item-text">...</p>'+
                '        </a>'+
                '    </div>'+
                '    <div class="list-group">'+
                '        <button class="btn-block btn-primary btn">Add</button>'+
                '    </div>'+
                '</div>'+
                '</div>';
        this.panel.appendChild(this.element);
    }


}

但是,当我运行点击函数时,出现以下错误:

    TypeError: test.addElement is not a function

test.addElement();

谁能告诉我我做错了什么?

最佳答案

addElement 是仅在Project 范围内可用的函数声明。将函数附加到 prototype 以使其可用于新实例,其中 this 指的是实例。

Project.prototype.addElement = function() {
  this.element = ...
};

关于JavaScript 对象函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21964165/

相关文章:

javascript - 尝试访问 JSON 项目时未定义

javascript - 递归函数提取所有叶节点

Javascript:未捕获类型错误:无法读取 null 的属性 'split'

javascript - 如何将 jQuery 事件附加到对象的方法?

java - 如何将一个对象转换为同一基类的不同对象?

C# 为什么将类实例传递给接受对象作为参数并将其装箱回来的方法

javascript - JS中重载时调用原生方法

javascript - 我的 angularjs spa 没有反射(reflect)我最新的 html 代码

Java:获取对象的值并将其解析为长

excel - VBA类模块: get property from an object using another property