在可嵌入的javascript小部件中,函数如何与原型通信?
我正在尝试构建一个可嵌入的javascript小部件。以下(示例)包含在脚本标记中在可嵌入的javascript小部件中,函数如何与原型通信?,javascript,Javascript,我正在尝试构建一个可嵌入的javascript小部件。以下(示例)包含在脚本标记中 (function (window) { function TestFunction(params) { console.log("init"); this.someVal = "ThisVal"; } TestFunction.prototype.protoFunc = function () { return "Hello " + t
(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();//类外触发器
}(窗口)嘿,杰森,谢谢你的回复。我已经更新了这个问题,使之更接近当前的场景-尝试使用eval。。。我不确定“静态”功能是否可行。小部件在实例化时在参数中采用不同的值,这些值随着小部件在上的使用而变化,例如this.someVal=“ThisVal”代码>可以变成this.someVal=“coffefe”代码>在小部件外部或从小部件代码内部。@user714852此
仅可在对象内访问。否则你只能静态地使用它。我对第一个场景进行了一些更新,使其完全基于对象。通常,您使用setter或getter在类实习生和外部人员之间进行通信。这意味着数据的封装