码迷,mamicode.com
首页 > 其他好文 > 详细

with在模板中的应用

时间:2017-04-14 20:55:34      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:pre   cti   with   obj   push   name   alice   highlight   span   

var str = ‘Hello <%= name %>!‘;

var o = {
  name: ‘Alice‘
};

function tmpl(str, obj) {
  str = ‘var p = [];‘ +
    ‘with (obj) {p.push(‘ + parser(str) + ‘)};‘ +
    ‘return p;‘
  var r = (new Function(‘obj‘, str))(obj);
  return r.join(‘‘);
}

tmpl(str, o)

推测parser应该是返回"hello" ,"Alice","!"

代码就变成:

var str = ‘Hello <%= name %>!‘;

var o = {
name: ‘Alice‘
};

function tmpl(str, obj) {
str = ‘var p = [];‘ +
  ‘with (obj) {p.push("hello" ,"Alice","!")};‘ +
  ‘return p;‘
  var r = (new Function(‘obj‘, str))(obj);
  return r.join(‘‘);
}

tmpl(str, o)

 

核心部分就是:

var o = {
  name: ‘Alice‘
};

var p = [];

with (o) {
  p.push(‘Hello ‘, name, ‘!‘);
};

p.join(‘‘)

with在模板中的应用

标签:pre   cti   with   obj   push   name   alice   highlight   span   

原文地址:http://www.cnblogs.com/sanjianghuiliu/p/6710442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!