相关疑难解决方法(0)

var functionName = function(){} vs function functionName(){}

我最近开始维护其他人的JavaScript代码.我正在修复错误,添加功能,并尝试整理代码并使其更加一致.

以前的开发人员使用两种声明函数的方法,如果背后有原因,我就无法解决.

这两种方式是:

var functionOne = function() {
    // Some code
};
Run Code Online (Sandbox Code Playgroud)
function functionTwo() {
    // Some code
}
Run Code Online (Sandbox Code Playgroud)

使用这两种不同方法的原因是什么?每种方法的优缺点是什么?有一种方法可以通过一种方法完成,而另一种方法无法完成吗?

javascript syntax idioms function

6645
推荐指数
32
解决办法
98万
查看次数

如何在JavaScript中"正确"创建自定义对象?

我想知道创建一个具有属性和方法的JavaScript对象的最佳方法是什么.

我已经看到了这个人在所有函数中使用var self = this然后使用的示例,self.以确保范围始终正确.

然后我看到了使用.prototype添加属性的示例,而其他人则使用内联方式.

有人可以给我一个具有一些属性和方法的JavaScript对象的正确示例吗?

javascript

464
推荐指数
7
解决办法
13万
查看次数

解释封装的匿名函数语法

摘要

你能解释一下JavaScript中封装的匿名函数语法背后的原因吗?为什么这样做:(function(){})();但这不是:function(){}();?


我知道的

在JavaScript中,可以创建一个这样的命名函数:

function twoPlusTwo(){
    alert(2 + 2);
}
twoPlusTwo();
Run Code Online (Sandbox Code Playgroud)

您还可以创建匿名函数并将其分配给变量:

var twoPlusTwo = function(){
    alert(2 + 2);
};
twoPlusTwo();
Run Code Online (Sandbox Code Playgroud)

您可以通过创建匿名函数来封装代码块,然后将其包装在括号中并立即执行:

(function(){
    alert(2 + 2);
})();
Run Code Online (Sandbox Code Playgroud)

这在创建模块化脚本时非常有用,可以避免使当前作用域或全局作用域混乱,并且可能存在冲突的变量 - 例如Greasemonkey脚本,jQuery插件等.

现在,我理解为什么会这样.括号包含内容并仅公开结果(我确定有更好的方法来描述),例如with (2 + 2) === 4.


我不明白

但我不明白为什么这也不起作用:

function(){
    alert(2 + 2);
}();
Run Code Online (Sandbox Code Playgroud)

你能解释一下吗?

javascript syntax anonymous-function

364
推荐指数
4
解决办法
7万
查看次数

每个对象都是一个函数,每个函数都是对象 - 哪个是正确的?

我正在读这个链接JavaScript_syntax

这似乎是循环的 - 每个函数都是一个Object,每个Object本身都是一个函数.哪个是原子的?有人能以更好的方式解释吗?

javascript

45
推荐指数
4
解决办法
2万
查看次数

角度术语 - 哈希对象

我正在阅读AngularJS开发人员指南,尽管我对JavaScript并不陌生,虽然谷歌谈到了开发人员,但我并不了解文档的某些部分.

也就是说,我不明白哈希对象是什么.我以为我知道对象哈希是什么,但他们使用它的方式不同.我会用几句话来说明:

关于$ compile函数的scope参数

如果设置为{}(对象哈希),则会创建一个新的"隔离"范围

'isolate'作用域采用一个对象哈希,它定义了一组从父作用域派生的局部作用域属性.这些本地属性对于模板的别名值很有用.Locals 定义是其源的本地范围属性的哈希:

谈谈link创造指令的功能

attrs是一个哈希对象,具有标准化属性名称的键值对及其对应的属性值

  • 什么是哈希对象?它只是一个普通的物体吗?
  • 这个术语经常用于JavaScript开发,还是Angular开发人员的习惯?
  • 如果哈希对象只是一个对象,那么还存在哪些其他类型的对象?
  • 是object hash和hash object同样的事情?如果是这样,他们应该修改他们的文档.

评论答案:

当我问几个问题时,每个回答者似乎都对单个部分做出了最好的回答.为了将来参考,它们中的每一个都很有价值,值得一读.

terminology angularjs

6
推荐指数
2
解决办法
2415
查看次数

javascript中对象和函数之间的区别

当两者都是instanceof对象时,javascript中对象和函数之间的确切区别是什么?

var obj = {};
function t(){}

console.log(obj instanceof Object); //true
console.log(t instanceof Object);   //true

console.log(typeof obj); //object
console.log(typeof t);   //function
Run Code Online (Sandbox Code Playgroud)

javascript

2
推荐指数
1
解决办法
158
查看次数