以下程序按预期打印“Hello world”
var print = function(t){
document.write(t);
};
var printAlias = print;
printAlias("Hello world");
但是当我使用与 document.write 相同的技术时,它不起作用。
var write = document.write ;
write("Something);
谁能告诉我我错过了什么?
以下程序按预期打印“Hello world”
var print = function(t){
document.write(t);
};
var printAlias = print;
printAlias("Hello world");
但是当我使用与 document.write 相同的技术时,它不起作用。
var write = document.write ;
write("Something);
谁能告诉我我错过了什么?
它不起作用,因为您this
在write
. 您可以使用该方法document
调用以将其取回:write
call
write.call(document, "Something");
在您的第一个示例中,您只是将调用包装document.write
在另一个函数中,但调用本身会保留上下文,因为您调用write
的是document
.
因此,如果您的目标是更短的代码,您不妨坚持使用通常的或您的包装函数!或者(感谢@Esailija)您可以在创建变量时将上下文绑定到:document
write
var write = document.write.bind(document);