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()
返回(如果这是您要传递给它的内容),这就是将分配给变量的内容。