您的位置:

请大神给我解释一下这段js代码(怎么看懂js代码)

请大神给我解释一下这段js代码(怎么看懂js代码)

更新:

本文目录一览:

请大神进来解释一段java script代码,js代码

JS引用后就进入内存了,要重载就需要重新运行一次,内存中要去掉,则要做相应的清除

一段JS代码,能不能请大神帮我分析一下是什么意思

你好,不知道你是想让大家帮你解释代码呢,还是想找人帮你分析最后console出来的结果。索性我就都帮你解答一下吧。

首先,我们来看一下代码解释:

// 声明一个全局变量name,并给name赋值为window字符串

var name = "window";

/**

 * 定义一个名为func的函数

 * 从后面的使用方式来看,这是一个构造函数

 */

function func() {

    // 为构造函数声明一个成员变量name

    // 并给成员变量name赋值为func字符串

    this.name = "func";

    // 为构造函数声明一个成员方法method

    this.method = function() {

        // 调用【Window对象内置的】setTimeout方法

        setTimeout(function() {

            // 关键在与此处的this为什么指向的是Window??

            console.log(this.name);

        }, 0);

    };

}

// 创建一个func的实例对象,并调用它的method方法

new func().method();

接着,我们来分析一下运行结果。

第一点,搞清楚一个问题。在浏览器中声明一个全局变量,会默认作为Window对象的属性。所以,当执行完'var name = "window";'之后,便有了'window.name = "window"';可如下验证:

var name = 'new name';

console.log(window.name); // new name

第二点,Javascript程序中,在没有通过call、apply等方法人为控制的情况下,this指向的是被调用的方法所属的对象。如题:method方法被调用的时候,method内部的this指向的应该是被new出来的实例对象,验证方法:

function func() {

    this.method = function() {

        console.log(this === instanceObj);

    }

}

var instanceObj = new func();

instanceObj.method(); // true

第三点,为什么题述代码console出来的是"window",而不是"func"?我们先看setTimeout方法是一个全局方法,即:setTimeout === window.setTimeout。因此setTimeout所属的对象应该是window。再根据第二条的结论,setTimeout内部的this指向的应该是window对象,那么结论就显而易见了:因为window.name = "window",所以最终打印出来的就是"window"了。

希望我讲得够清楚了,如有疑问可追问,望采纳~

请大神帮忙 给解释下一段JS代码???

/**

* SendCode Plugin

*/

//发送验证码插件开始

//匿名函数执行

!function () {

"use strict";//要求严格语法

//声明SendCode对象并初始化参数

function SendCode (element, options) {

this.$btn = $(element);//获取按钮元素

//合并多个参数 初始化参数(用于外部传递参数覆盖默认参数)

this.options = $.extend({}, SendCode.DEFAULTS, options || {});

}

//控件开放的参数默认值

SendCode.DEFAULTS = {

run: false, // 是否自动倒计时

secs: 60, // 倒计时时长(秒)

disClass: '', // 禁用按钮样式

runStr: '{%s}秒后重新获取', // 倒计时显示文本

resetStr: '重新获取验证码' // 倒计时结束后按钮显示文本

};

//全局计时器变量,清除用

SendCode.timer = null;

/**

* 开始倒计时

*/

SendCode.prototype.start = function () {

var _this = this,

options = _this.options,

secs = options.secs;

_this.$btn.html(_this.getStr(secs)).css('pointer-events', 'none').addClass(options.disClass);

_this.timer = setInterval(function () {

secs--;

_this.$btn.html(_this.getStr(secs));

if (secs = 0) {

_this.resetBtn();

clearInterval(_this.timer);

}

}, 1000);

};

/**

* 获取倒计时显示文本

* @param secs

* @returns {string}

*/

SendCode.prototype.getStr = function (secs) {

return this.options.runStr.replace(/\{([^{]*?)%s(.*?)\}/g, secs);

};

/**

* 重置按钮

*/

SendCode.prototype.resetBtn = function () {

var _this = this,

options = _this.options;

_this.$btn.html(options.resetStr).css('pointer-events', 'auto').removeClass(options.disClass);

};

//jQuery 插件扩展方法

function Plugin (option) {

/*主要用于控件二次调用,比如$('div').sendCode('getStr ',120); 这个时候,第一个参数只是方法名,第二个参数才是option,所以,下面这句代码的意义就是取到第二个参数。其实就是变相将sendcode内部方法外露出去

*/

var args = Array.prototype.slice.call(arguments, 1);

/*留意最下面一行代码,$.fn.sendCode = Plugin;此代码的意义是在jQuery控件库扩展了一个叫sendCode的控件,调用方法为$('div').sendCode({secs:120}); 那么此时Plugin

的内置对象this为$('div')是一个数组,所以要循环生成控件。这样做法是为了满足调用方在页面上一次生成多个控件。

*/

return this.each(function () {

var $this = $(this),//单个元素

sendcode = $this.data('ydui.sendcode');//获取保存在元素上的SendCode对象

//如果元素上没有保存过对象,那么初始化SendCode对象并保存到元素上

if (!sendcode) {

$this.data('ydui.sendcode', (sendcode = new SendCode(this, option)));

//如果option参数是对象,那么直接启动控件

if (typeof option == 'object'  option.run) {

sendcode.start();

}

}

//这里就是上面说的二次调用,$('div').sendCode('run');这个时候的option='run'

if (typeof option == 'string') {

sendcode[option]  sendcode[option].apply(sendcode, args);

}

});

}

//将控件扩展到jQuery

$.fn.sendCode = Plugin;

}();

这个就是发送验证码时,按钮文本变化的一个小控件,核心代码已添加注释,有问题再联系,望采纳。

请大神给我解释一下这段js代码(怎么看懂js代码)

本文目录一览: 1、请大神进来解释一段java script代码,js代码 2、一段JS代码,能不能请大神帮我分析一下是什么意思 3、请大神帮忙 给解释下一段JS代码??? 请大神进来解释一段java

2023-12-08
看一下这段js代码,怎么看懂js代码

本文目录一览: 1、帮看段JS代码 2、这段js代码什么意思 3、麻烦看下这段Js代码是什么代码? 4、大家给看一下这段JS代码是什么意思 5、求大家帮忙看下这段JS代码的大概意思 6、求大神看一下这

2023-12-08
谁帮我看一下这段js代码(js中的!)

本文目录一览: 1、大家帮我看看这段JS代码是什么意思? 2、求大家帮忙看下这段JS代码的大概意思 3、谁能帮我看一段javascript代码,急急 4、请大家帮我看一这段JAVASCRIPT代码 5

2023-12-08
由于不懂js代码,js代码看不懂

2022-11-24
请大侠帮忙简化一上js代码(js常用代码)

本文目录一览: 1、使用JS函数简化代码 2、写的一段很简单的js代码,有些不能理解的地方,麻烦各位大侠给我指点指点,谢谢哈! 3、请大神帮忙 给解释下一段JS代码??? 4、急!急!急!求一段简单的

2023-12-08
求大神看下js代码(求大神看下js代码)

本文目录一览: 1、求大家帮忙看下这段JS代码的大概意思 2、求js大神帮我看下我的代码为什么无法获取表单数据 3、求js代码解释 4、请js大神帮我注释,想自学,详细点,谢谢!代码如下 求大家帮忙看

2023-12-08
js代码执行逻辑求大神指教一下(js代码执行器)

本文目录一览: 1、如何执行javascript代码 2、js的执行原理是什么? 3、一段JS代码,部分出现了问题,求大神指教 4、JS脚本怎么运行? 5、js的逻辑应该怎么理解? 如何执行javas

2023-12-08
请你帮我翻译一段js代码(js代码翻译中文)

本文目录一览: 1、请大神帮忙 给解释下一段JS代码??? 2、能帮我逐行翻译一下这个JS代码吗,我还没学过,但是要用这一段。 3、帮我翻译一下下面这段JS代码 4、js代码翻译 5、帮忙翻译一段ja

2023-12-08
让你的js代码更具可读性,怎么看懂js代码

本文目录一览: 1、如何让能让jquery的.min.js文件变得可读性 2、如何写高质量的JS,Html5前端代码 3、如何写出优美的 JavaScript 代码 4、如何提高代码可读性,可维护性

2023-12-08
js添加注释代码(js中添加注释)

本文目录一览: 1、Javascript注释怎么写 2、怎么给代码加注释? 3、如何注释html,css,js代码 4、如何注释html、css、js代码 5、javascript中 怎样对包含 */

2023-12-08
代码之神js实战,狂神javascript笔记

2022-11-25
怎么读js代码,怎么看懂js代码

2022-11-25
为什么这段js代码不能正常提示(js代码不起作用)

本文目录一览: 1、自己写的javascript代码为什么在浏览器中不会显示弹出的提示什么意思,怎样才能让自己的代码顺利运行 2、js代码不执行,代码段如下,提示信息都不显示 3、jsp中的javas

2023-12-08
执行js代码大全,执行js代码大全下载

本文目录一览: 1、编写一段代码,如何用JS来实现插入几行几列的表格的功能,希望好心人能帮帮忙呢 2、求个简单javascript代码 谢谢,网站菜单功能 3、求C# winform中点击按钮执行网页

2023-12-08
求大神来解一段js加密代码(js加密解密源代码)

本文目录一览: 1、如何破解JS脚本加密 2、急求破解一段加密JS代码 3、求解密一段JS代码 4、求各位大大帮解密段JS代码,在这里先谢谢了! 5、帮我破解一段被加密的js代码。 6、这段js怎么解

2023-12-08
2017js代码大全(js新手代码大全)

本文目录一览: 1、关于JS的代码 2、下面是一段Js语言代码。我是初学者,大神,花括号里的各个代码如何理解? 3、JS鼠标事件大全 JS鼠标事件有哪些 4、什么地JS?什么是JSP? 5、JS 代码

2023-12-08
10段js使用代码(js倒计时10秒代码)

本文目录一览: 1、javascript代码写法问题 2、js如何使用? 3、js代码如何使用 4、这是JavaScript的一段代码,帮我分析一下用到了什么,具体点,回答老师用的 javascrip

2023-12-08
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
js之常用代码块(js代码是什么)

本文目录一览: 1、js使用java代码块 2、javascript 语句、代码、代码块 3、js中单击按钮实现代码块功能 4、js中怎么截取不确定长度的字符串,截取后保留后面的部分 js使用java

2023-12-08
js代码总结体会,js基础知识总结笔记

本文目录一览: 1、js到底难不难学? 2、JS 代码 求解释 可以详细的 说明一下 谢谢 3、浅谈js写轮播图的思路与心得 4、JavaScript与WEB前台开发课程实训总结怎么写 5、js中继承

2023-12-08