日期:2014-05-16  浏览次数:20408 次

Javascript中一段代码的意思
请问:
1、if (opts && typeof (opts) === "string") 
  是不是opts不为空并且其类型为string

2、var jHtmlArea = window.jHtmlArea = function(elem, options) {
  是不是将 function(elem, options)赋值给windows.jHtmlArea ,然后将windows.jHtmlArea赋值给var jHtmlArea  


(function($) {
  $.fn.htmlarea = function(opts) {
  if (opts && typeof (opts) === "string") {
  var args = [];
  for (var i = 1; i < arguments.length; i++) { args.push(arguments[i]); }
  var htmlarea = jHtmlArea(this[0]);
  var f = htmlarea[opts];
  if (f) { return f.apply(htmlarea, args); }
  }
  return this.each(function() { jHtmlArea(this, opts); });
  };

  var jHtmlArea = window.jHtmlArea = function(elem, options) {
  if (elem.jquery) {
  return jHtmlArea(elem[0]);
  }
  if (elem.jhtmlareaObject) {
  return elem.jhtmlareaObject;
  } else {
  return new jHtmlArea.fn.init(elem, options);
  }
  };

------解决方案--------------------
对。。。
------解决方案--------------------
1、if (opts && typeof (opts) === "string")
js中,0,'',null,undefined用在布尔值判断时,都与false一样。
所以说,上面那句是:opts不为0,'',null,undefined,false且opts为string类型。

2、var jHtmlArea = window.jHtmlArea = function(elem, options) {
window.jHtmlArea:向window对象中添加了一个jHtmlArea属性。
上面那句表示:将匿名函数的指针赋值给window.jHtmlArea和jHtmlArea变量。