Javascript 初学者:关于链接

Javascript 初学者:关于链接,javascript,Javascript,如果我写: var headerDiv = document.createElement('div').appendChild(document.createTextNode('Chapter 1')); 变量headerDiv指向什么,div还是text节点?可能示例选择不当,因此我将尝试根据不同的示例给出答案。假设您有以下代码: var foo = func1(); var bar = foo.func2(); var baz = bar.func3(); 在这里,我们将每个函数调用的结

如果我写:

var headerDiv = document.createElement('div').appendChild(document.createTextNode('Chapter 1'));

变量headerDiv指向什么,div还是text节点?

可能示例选择不当,因此我将尝试根据不同的示例给出答案。假设您有以下代码:

var foo = func1();
var bar = foo.func2();
var baz = bar.func3();
在这里,我们将每个函数调用的结果存储在一个变量中。如果要在多个位置重用计算结果,这非常有用

但是,如果只需要一次结果,可以用计算值的表达式替换变量名:

var bar = (func1()).func2(); // bar -> func1()
var baz = bar.func3();
当然,我们可以为
bar
再次执行此操作:

var baz = ((func1()).funct2()).func3();
这将创建与开头代码相同的结果。只需立即使用中间步骤,而不是保存中间步骤的结果。此处不需要用括号括住子表达式,因此整个表达式可以简化为:

var baz = func1().funct2().func3();

你不应该像那样链接函数<代码>文档。createElement('div')将返回它创建的div元素。和
document.createTextNode('Chapter 1')
将返回它创建的文本节点。当您这样编写时,div将尝试调用名为document的函数,而document并不存在。改为写:

var headerDiv = document.createElement('div'),
    textNode = document.createTextNode('Chapter 1');

这是个骗人的问题吗?回答:都不是。变量的值将是
undefined
,因为您得到了一个类型错误:
TypeError:无法调用undefined
的方法“createTextNode”。如果您在询问之前进行检查会怎么样?那么在线JS EvaluatorHMM不是。。。我想知道您是否打算将文本节点作为arg来链接
.appendChild()
?或者,
文档
应该是
.ownerDocument
?是的,我的意思是,请更新您的问题以显示您的意思。答案是文本节点将从
.appendChild()
返回(如果这是您要传递给它的内容),这就是将分配给变量的内容。