我试图弄清楚,当迭代一些列表项时,如何在嵌套的foreach循环中定位每个"$(this)"等价物.这是我的问题的一个例子:
$('li').each(function(){
// I believe $(this) would target each li item...
$(this).children("li").each(function(){
// ... but how can I target each of these li items? Doesn't $(this) target the original loop?
});
});
Run Code Online (Sandbox Code Playgroud) 我有一个JavaScript函数对象;
var addNum = function(num1, num2) {
return num1 + num2;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试访问
addNum.divide()
Run Code Online (Sandbox Code Playgroud)
我想了解上述代码的原型链.我读到在上面的例子中,addNum将被搜索divide(),然后是Function.prototype,最后是Object.prototype.
但我的问题是在上面的例子中,addNum如何搜索divide()
它是指类似的东西吗?
var addNum = function(num1, num2) {
this.divide = function(){}
return num1 + num2;
}
Run Code Online (Sandbox Code Playgroud)
我无法理解addNum将被搜索为divide()的行
请帮我理解一下.
我正在努力理解javascript中的函数和对象.据说,函数也是对象,对象是一种"关联数组",即键值对的集合.我明白,如果我写
function myFunction() {
var value = 0;
}
alert(myFunction.value); //then this gives me "undefined"
Run Code Online (Sandbox Code Playgroud)
因为变量有功能范围.但如果我写
function myFunction() {
this.value = 0;
}
alert(myFunction.value); //then this gives me "undefined" too.
Run Code Online (Sandbox Code Playgroud)
但最后,如果我写
function myFunction() {
this.value = 0;
}
myFunction.value = 0;
alert(myFunction.value); //then this gives me 0
Run Code Online (Sandbox Code Playgroud)
所以我可以给myFunction属性"value"但是来自"outside".有人可以解释发生了什么以及为什么this.value = 0; 不会创造属性"价值".
我希望我在这里发布这个问题是好的,即使我也在其他网站上发布了这个问题.如果我没有遵循正确的协议,我道歉并请立即告诉我,以便我可以删除帖子并学习我的课程.
我已经成为一名前端开发人员已有一年多了.我去学校学习网络开发,在简单的JavaScript方面,我认为自己是一个有能力的编码器.但是当谈到编写任何类型的Fibonacci函数时,我无法做到.就好像我的大脑中缺少一块可以理解如何处理这个简单数字序列的东西.这是一段工作代码,我很确定我是从John Resig的书或在线的某个地方得到的:
fibonacci = (function () {
var cache = {};
return function (n) {
var cached = cache[n];
if (cached) return cached;
if (n <= 1) return n;
console.log(n);
return (cache[n] = fibonacci(n - 2) + fibonacci(n - 1));
};
}());
Run Code Online (Sandbox Code Playgroud)
当我用10作为参数调用这个函数时,我得到了这个序列:10,8,6,4,2,3,5,7,9
这是我的理解:
fibonnaci被赋予一个立即调用的函数表达式(或自动执行blah blah blah),使用传递的任何参数向其启动缓存.如果争论已经存在于缓存中,我们就会将其归还,让我们的生活永远平静下来.如果论证是1或更少,那也是功能的终结,永久的和平再次发生.但如果这些条件都不存在,那么该函数会返回这个语句,让我感觉好像我只是一个穿着人类西装的猴子.
我想做的是以正确的顺序产生前10个斐波纳西数,因为如果我能做到这一点,那么我会觉得我至少理解它.
因此,当前两个条件失败时,代码会创建一个新的缓存变量并将其设置为等于fibonacci函数的结果,无论参数是否减去2,然后它将结果减去1 ....现在我的问题
感谢您的时间.
经过这个块之后,我稍微改变了一下这个函数,看看我是否可以保留变量中的结果并输出它,只是为了看看会发生什么,我得到了一些非常意想不到的结果.
这是改变:
fibonacci = (function () {
var cache = {};
return function (n) {
var cached = cache[n];
if (cached) {
console.log(cached);
return cached; …Run Code Online (Sandbox Code Playgroud) 我一直在查看my.class.js的源代码,以了解是什么让它在Firefox上如此之快.这是用于创建类的代码片段:
my.Class = function () {
var len = arguments.length;
var body = arguments[len - 1];
var SuperClass = len > 1 ? arguments[0] : null;
var hasImplementClasses = len > 2;
var Class, SuperClassEmpty;
if (body.constructor === Object) {
Class = function () {};
} else {
Class = body.constructor;
delete body.constructor;
}
if (SuperClass) {
SuperClassEmpty = function() {};
SuperClassEmpty.prototype = SuperClass.prototype;
Class.prototype = new SuperClassEmpty();
Class.prototype.constructor = Class;
Class.Super = SuperClass;
extend(Class, SuperClass, …Run Code Online (Sandbox Code Playgroud)