在可嵌入的javascript小部件中,函数如何与原型通信?

在可嵌入的javascript小部件中,函数如何与原型通信?,javascript,Javascript,我正在尝试构建一个可嵌入的javascript小部件。以下(示例)包含在脚本标记中 (function (window) { function TestFunction(params) { console.log("init"); this.someVal = "ThisVal"; } TestFunction.prototype.protoFunc = function () { return "Hello " + t

我正在尝试构建一个可嵌入的javascript小部件。以下(示例)包含在脚本标记中

(function (window) {

    function TestFunction(params) {
        console.log("init");
        this.someVal = "ThisVal";
    }

    TestFunction.prototype.protoFunc = function () {
        return "Hello " + this.someVal;
    };

    function hello() {
        return eval("TestFunction.protoFunc();");
    }

}(window));
当我实例化小部件时,如下所示

let test = TestFunction({});
如果我接着打字

test.protoFunc();
你好,提斯瓦尔


将被打印出来。但是,如果hello函数触发,它会抛出一个错误,说明
TestFunction.protoFunc不是一个函数
。有没有一种方法可以让
hello()
函数触发
TestFunction.prototype.protoFunc
函数?

我对示例进行了一些更新。工作流现在是对象驱动的。如果我误解了你,请给我更多的信息

(功能(窗口){
//对象实例
让instance=null;
//类定义
var TestFunction=函数(参数){
console.log(“init”);
this.options=params;
setTimeout(hello,100);//初始化后触发
}
//类方法
TestFunction.prototype.protoFunc=函数(){
log(“Hello”+this.options.name);
};
//触发功能
函数hello(){
返回eval(“instance.protoFunc()”);
}
//启动实例
instance=newtestfunction({name:'jondoe'});
hello();//类外触发器

}(窗口)this.someVal=“ThisVal”可以变成
this.someVal=“coffefe”在小部件外部或从小部件代码内部。@user714852
仅可在对象内访问。否则你只能静态地使用它。我对第一个场景进行了一些更新,使其完全基于对象。通常,您使用setter或getter在类实习生和外部人员之间进行通信。这意味着数据的封装