随笔 - 547  文章 - 213 评论 - 417 阅读 - 107万

JavaScript中的String类型原本没有什么特殊的,但是JavaScript为了适应
“浏览器实现的超文本环境”,因此它具有一些奇怪的方法。例如:
  link() : 把一个有HREF属性的超链接标签<A>放在String对象中的文本两端。
  big()  : 把一对<big>标签放在String对象中的文本两端。
以下方法与此类同:
  anchor()
  blink()
  bold()
  fixed()
  fontcolor()
  fontsize()
  italics()
  small()
  strike()
  sub()
  sup()

我测试了一下,发现上述函数都无效,不知道为什么

在这个例子中,我们看到,当一个对象没有重新声明(覆盖)自己toString()方
法的时候,那么它作为字符串型态使用时(例如被writeln),就会调用Java Script
环境缺省的toString()。反过来,你也可以重新定义JavaScript理解这个对象
的方法。

很多JavaScript框架,在实现“模板”机制的时候,就利用了这个特性。例如
他们用这样定义一个FontElement对象:

//---------------------------------------------------------
// 利用toString()实现模板机制的简单原理
//---------------------------------------------------------
function FontElement(innerHTML) {
  
this.face = '宋体';
  
this.color = 'red';
  
// more

  var ctx 
= innerHTML;
  
this.toString = function() {
    
return '<U><Font FACE="' + this.face + '" COLOR="' + this.color + '">'
      
+ ctx
      
+ '</FONT></U>';
  }
}

var obj 
= new FontElement('白日依山尽,黄河入海流。');

// 留意下面这行代码的写法
document.writeln(obj);

运行效果如下:


这样就可以生成不同的Font对象,然后根据需要调用就可以了

posted on   今夜太冷  阅读(269)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示