如何在JavaScript中定义内容

时间:2013-05-07 18:42:34

标签: javascript

我知道如何用C ++定义内容。例如:

#define ce cout<<"\n";

现在,如果我们使用ce代码的任何位置,它将输出cout<<"\n";
我正在尝试使用这个JavaSvript:

#define go document.write

所以,如果我想显示/输出某些东西,我想写

go('Great!');

现在,这将在浏览器中输出Great!。但是此define方法无法在JavaScript中使用

4 个答案:

答案 0 :(得分:12)

你不能,至少不是C / C ++的方式。但是,您可以为任何变量分配函数:

var go = document.write;

正如所指出的,由于范围的变化,这对document.write不起作用。获得具有正确范围的实际功能的一种解决方案是:

var go = document.write.bind(document);
// Now call
go('Great!');

.bind在IE8及更低版本中不起作用的节点。

答案 1 :(得分:3)

另一个选项是Object.defineProperty,它允许你设置一些不可写,可配置或可枚举的东西......特别是在window对象上(因此有全局访问权限)。试试这个:

Object.defineProperty(window, "go", {
    enumerable: false,
    configurable: false,
    writable: false,
    value: function (msg) {
        console.log(msg);
    }
});

DEMO: http://jsfiddle.net/xm3mT/

您可以使用value,而不是将bind设置为匿名函数,而不是:

value: console.log.bind(console)

虽然使用我的第一个例子就好了。

我不完全确定你使用document.write,但通常不想使用它...当然,这取决于你。尽管如此,我只使用console.log作为示例。

参考文献:

答案 2 :(得分:1)

使用“var”关键字定义变量。

var name = "Jessica";

您也可以指定一个功能:
var myFunction = function() {
// do something
};

Javascript是松散类型的,因此您不指定它是什么类型的变量。

答案 3 :(得分:1)

JavaScript不是一种编译语言,因此没有与C ++的define等价的东西。你必须使用变量。但是您可以将函数赋值给变量(因为JavaScript中的函数是对象)以获得基本相同的结果。