javasript中的function()是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javasript中的function()是啥?相关的知识,希望对你有一定的参考价值。

不是function ** 代码 而是直接的function()代码效果貌似和直接写代码是一样的

在jquery中也经常有$("*").function()代码这样的写法....
这样究竟有什么意义

你给出的两个例子 function()代码 和 $("*").function()代码 都是不可能独立出现的,它们都存在语法错误。


应该是 function()  外面还有两个括号,或者将这个函数赋予一个变量


这都是匿名函数,例如


// 定义并执行
(function()
alert("Hello");
)();

// 或

var a = function()
alert("Hello");
;

// 调用
a();



至于第二个,应该是


$("*").click(function()
alert("hello");
);



绑定 click 事件到页面内的所有元素。一般不会这样写。

追问

没错没错,为什么要用匿名函数?它有什么优点?

追答

有的时候我们需要在一个 JS 文件中执行一大段代码(假设文件1000行,此段代码300行,而且声明了很多变量),为了不让这段代码中的变量与其它变量冲突,我们可以将它包裹在一个匿名函数中,然后让它自动执行。在函数内部我们就不需要过多考虑是否某个变量已经在外部被声明过。

匿名函数还常被用于在循环中触发事件:假设页面有 10 个 text

window.onload = function()
var ps = document.getElementsByTagName("p");
for(var i = 0; i < ps.length; i++)
ps[i].onclick = function()
alert("第" + i + "个p被点击");


;

上面这段代码永远都输出 "第 10 个p被点击",因为当点击的时候 for 已经循环结束。这时候就需要用到匿名函数来传递 i 的参考。

window.onload = function()
var ps = document.getElementsByTagName("p");
for(var i = 0; i < ps.length; i++)
(function(idx) // <-------------------- 匿名函数,idx 为 i 的参考

ps[idx].onclick = function()
alert("第" + idx + "个p被点击");

)(i); // <-------------------- 将 i 传入匿名函数


;

这样当点击的时候才会输出正确的 index 值。

参考技术A 这个在java里面称为内部类,即在使用的时候定义此方法直接调用!

React.js 中的 Function 和 Class 组件之间的确切区别是啥? [复制]

【中文标题】React.js 中的 Function 和 Class 组件之间的确切区别是啥? [复制]【英文标题】:What is the exact difference between Function and Class component in React.js? [duplicate]React.js 中的 Function 和 Class 组件之间的确切区别是什么? [复制] 【发布时间】:2019-03-21 05:56:10 【问题描述】:

除了Class有状态和函数没有,我认为我们可以通过类组件来实现我们的状态和功能需求,那么为什么我们需要React.js中的Function Component呢?

【问题讨论】:

【参考方案1】:

实际上,除了状态可用性之外,两者之间并没有界限,因为很多开发者经常会一个接一个地弄错,而且有时每个人都有不同的理解和定义,比如 smart-dumb 组件、container-component 等。实际使用(以及我的一些经验),使用功能组件通常更容易,因为:

    代码中的噪音更少,不需要额外的声明,从而提高了代码的可读性。

    在代码大小和复杂性方面更加紧凑和实用,因为它不像类组件那样包含太多的道具和状态。

    根据一些文章 (https://hackernoon.com/react-stateless-functional-components-nine-wins-you-might-have-overlooked-997b0d933dbc),无状态功能组件也提高了性能,因为它不涉及生命周期方法。

此外,有时您不想为仅通过您的类组件有效的紧凑小型不可重用组件编写另一个文件/类。

【讨论】:

以上是关于javasript中的function()是啥?的主要内容,如果未能解决你的问题,请参考以下文章

将整个 Javascript 文件包装在像“(function() ... )()”这样的匿名函数中的目的是啥?

JavaSript之prototype属性

lvalue required in function main错误是啥意思?

Javascript 中的 (function e(t,n,r) ...) 是啥? [复制]

javasript数据类型以及如何判断数据类型

浅谈JavaSript中的this