JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 可以使JavasScript函数的行为好像是一个字符串,no()大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是可能的吗,还是我在这里树上错误的树? @H_607_2@var data = 'one'; function fnc(){ this.out = function(){ return data; } } var instance = new fnc(); alert(instance.out); data = 'two'; alert(instance.out); // I know that this would achieve that,but that's not what I would like to know. alert(instance.out()); data = 'two'; alert(instance.out());

更新:

fnc应该表示的对象实际上是Sarissa dom文档.这是一个更精细的版本的fnc(),dom_doc().下面接受的答案已经被整合到下面的功能中.

@H_607_2@function get_doc(dom_nodE) { var doc; if (navigator.userAgent.indexOf("MSIE") >= 0) { doc = new ActiveXObject("Msxml2.DOMDocument.3.0"); doc.loadXML(document.getElementById(dom_nodE).text); } else { doc = Sarissa.getDomDocument(); doc = (new DOMParser()).parseFromString(document.getElementById(dom_nodE).textContent,"text/xml"); // runs XSLTProcessor in modern browsers as if it was trasformNode doc.transformNode = function (stylesheet) { var processor = new XSLTProcessor(); processor.importStylesheet(stylesheet); return new XMLserializer().serializeToString(processor.transformToDocument(this)); } // allows modern browsers to extract xml the way the legacy IEs did var getXML = {}; getXMl.toString = function(){ return new XMLserializer().serializeToString(doc); }; doc.xml = getXML; } return doc; }

演示:JSFIDDLE

解决方法

jsFiddle Demo

这些类型的解决方法真的绕过了惯例.在函数上简单地使用()不应该是那么大的阻碍.使用()是预期的,可读的,最佳实践和行业标准.

不知道为什么smartcaveman决定删除他使用toString的答案,但这是一个可行的方法,然有点黑客.

@H_607_2@var data = 'one'; function fnc(){ var getData = {}; getData.toString = function(){ return data; }; this.out = getData; } var instance = new fnc(); alert(instance.out);//one data = 'two'; alert(instance.out);//two var s = instance.out; alert(s);//two

大佬总结

以上是大佬教程为你收集整理的javascript – 可以使JavasScript函数的行为好像是一个字符串,no()全部内容,希望文章能够帮你解决javascript – 可以使JavasScript函数的行为好像是一个字符串,no()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。