jquery - 使用严格导致未定义的函数

标签 jquery function undefined use-strict

我正在尝试组织我的 js 文件并遵循建议的模块模式。当我在此模式中使用“use-strict”时,函数被声明为未定义,如果没有“use-strict”方法,该函数就可以正常工作。是否推荐使用严格模式?如果是,为什么该功能无法使用它?

var envy = (function( $ ) {
   'use strict';

   /**
    * Viewport adjusments.
    *
    * @since 1.0.0
    */
   irp_viewportadjst = function() {
      $('meta[name="viewport"]').attr('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0');
   },

   /**
    * Fire events on document ready, and bind other events.
    *
    * @since 1.0.0
    */
   ready = function() {
       irp_viewportadjst();
   };

   // Only expose the ready function to the world
   return {
       ready: ready
    };

   })( jQuery );
jQuery( envy.ready );

最佳答案

您的代码中需要变量声明提升。严格模式声明要求您的函数名称更早定义。 要么定义你的函数名称 var irp_viewportadjst, ready; 或 更改代码如下

var envy = (function( $ ) {
   'use strict';

   /**
    * Viewport adjusments.
    *
    * @since 1.0.0
    */
   var irp_viewportadjst = function() {
      $('meta[name="viewport"]').attr('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0');
   };

   /**
    * Fire events on document ready, and bind other events.
    *
    * @since 1.0.0
    */
   var ready = function() {
       irp_viewportadjst();
   };

   // Only expose the ready function to the world
   return {
       ready: ready
    };

   })( jQuery );
jQuery( envy.ready );

关于jquery - 使用严格导致未定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48834846/

相关文章:

javascript - JQuery 动画

jquery - rails 4 : How to pass a form builder object to a nested form updated with javascript (jQuery)

c - 为什么我的 float 函数没有按预期工作?

c - 我应该在 .h 文件中定义函数还是只声明它们?

window - 带有 scrollmagic 的 Nuxtjs 给了我 "window is not defined"

javascript - 如何使用 jquery 绑定(bind)添加通配符

javascript - 将子元素与菜单的父元素重叠

c++ - 如何使用类中的函数从 main 打印变量,帮助理解 OOP c++

javascript - 尽管存在于 Chrome 控制台 TreeView 中,但对象属性(类型 = 对象)未定义

javascript - Array(len) 初始化程序中的未定义值