如何以编程方式获取Knockout.js计算可观察对象的求值函数定义字符串
获取Knockout.js计算字段的求值函数字符串
- 直接通过Knockout计算属性的内部属性
_fn获取求值函数,再调用toString()就能拿到函数定义的字符串:
示例代码:
// 定义计算属性 self.field = ko.computed(function () { return 'HELLO WORLD'; }); // 获取求值函数的字符串表示 const funcStr = self.field._fn.toString(); // 若需要双引号包裹的格式,直接拼接即可 const quotedFuncStr = `"${funcStr}"`;
执行后funcStr的输出为:
function () { return 'HELLO WORLD'; }
- 之前的方法失效原因:
JSON.stringify()会自动忽略对象中的函数类型属性,无法捕获函数内容Object.keys()仅能获取对象的可枚举自有属性,而_fn是Knockout的内部不可枚举属性,因此无法被检索到
内容的提问来源于stack exchange,提问作者Ryan Penfold
相关产品推荐
相关产品推荐

