我们希望在validate()
之外调用该函数initValidation()
,而不必调用initValidation()
以下是我们的问题代码-
function initValidation(){ //无关的代码在这里 function validate(_block){ //代码在这里 } }
在JavaScript中,我们知道函数不过是对象,因此要实现这一点,我们可以像这样调整代码-
function initValidation(){ //无关的代码在这里 function validate(_block){ //代码在这里 console.log(_block); } this.validate = validate; }
这种调整的作用是使我们的父函数现在代表一个类,其中validate是一个属性,我们可以像这样访问它-
const v = new initValidation(); v.validate('Hello world');
以下是带有输出的完整代码-
function initValidation(){ //无关的代码在这里 function validate(_block){ //代码在这里 console.log(_block); } this.validate = validate; } const v = new initValidation(); v.validate('Hello world');
输出结果
控制台中的输出将为-
Hello world