请问这个函数用用来干嘛的?
要怎么测试?
(犀牛书的8.7.3节)弄了两天弄不懂...
function trace(o, m) {
var original = o[m];
o[m] = function() {
console.log(new Date(), "Entering:", m);
var result = original.apply(this, arguments);
console.log(new Date(), "Entering:", m);
return result;
};
}
javascript方法function
要怎么测试?
(犀牛书的8.7.3节)弄了两天弄不懂...
function trace(o, m) {
var original = o[m];
o[m] = function() {
console.log(new Date(), "Entering:", m);
var result = original.apply(this, arguments);
console.log(new Date(), "Entering:", m);
return result;
};
}
javascript方法function
解决方案 »
- 没有弄清楚load对象是怎么添加到a对象里面去的
- Js如何把一篇英文文章拆分成单词保存
- js在Firefox中报错
- 各位大虾,帮忙看看,ivotenow是怎么写入库的!100分
- insertAdjacentHTML一个DIV后,怎么调用这个DIV无效?
- 有关梅花雪树控件的一些建议,请梅花雪注意接受,呵呵
- 列表框值如何写入文本框
- 关于PRE换行,高手进。UP有分!
- 通过:window.open('','','fullscreen=yes,scroll=no.............,')里面是哪个参数使其 最小化 按钮没有的?
- 为什么参数不能传递?小问题求救!
- window.onload执行带参数的函数
- 在js中如何循环这样的数据
组件开发中非常有用大致看一下trace函数的作用是在不影响成员函数作用的前提下进行监视,调用时会在控制台输出调用时间
function fn(){
alert(this.a);
}
var b = {
a:123
}
fn();//this默认是指向window
fn.apply(b);//用apply来改变this,此时fn里面的this其实就b对象。
function trace(o, m) {
var original = o[m];
o[m] = function() {
console.log(new Date(), " [Trace] Entering method:", m, "()");
var result = original.apply(this, arguments);
console.log(new Date(), " [Trace] Leaving method:", m, "()");
return result;
};
}foo();
/* Console displays:
Fri Mar 15 12:00:00 UTC+0x00 2013 foo is called
*/trace(window, "foo");
foo();
/* Console displays:
Fri Mar 15 12:00:00 UTC+0x00 2013 [Trace] Entering method:foo()
Fri Mar 15 12:00:00 UTC+0x00 2013 foo is called
Fri Mar 15 12:00:00 UTC+0x00 2013 [Trace] Leaving method:foo()
*/
function trace(o, m) {
var original = o[m];
o[m] = function() {
console.log(new Date(), " [Trace] Entering method:", m, "()");
var result = original.apply(this, arguments);
console.log(new Date(), " [Trace] Leaving method:", m, "()");
return result;
};
}// Define a method foo()
function foo() {
console.log(new Date(), " foo is called");
}// Test foo() without trace
foo();
/* Console displays:
Fri Mar 15 12:00:00 UTC+0x00 2013 foo is called
*/// Test foo() with trace. (注意;foo 是 window 的一个函数)
trace(window, "foo");
foo();
/* Console displays:
Fri Mar 15 12:00:00 UTC+0x00 2013 [Trace] Entering method:foo()
Fri Mar 15 12:00:00 UTC+0x00 2013 foo is called
Fri Mar 15 12:00:00 UTC+0x00 2013 [Trace] Leaving method:foo()
*/