$('#element').attr('alt','Ivan is SUPER hungry! lolz');
VS
$('#element').attr({'alt': 'Ivan is an ugly monster! omfgz'});
现在,这是说attr()方法被设计为接受EITHER属性名称,属性名称和值,还是配对值映射?有人能给我一个简短的解释,说明地图实际上是什么,以及它与Javascript中的数组有什么不同?
继续前进,整个图书馆都包含在这个行业……
(function(window,undefined) { /* jQuery */ })(window);
我知道包装的括号会导致类似于body onLoad =“function();”的行为,但是这个实践被称为什么,它与使用onLoad事件处理程序有什么不同?另外,我不能在那里做(窗口)位的头或尾.这里的窗口对象到底发生了什么?
在评估中我是否错误,对象与Javascript中的函数没有什么不同?如果我错了,请纠正我,但$()是包含所有jQuery对象,但它看起来就像一个方法.这是代码示例的另一个快速问题…
$('#element').attr('alt','Adopt a Phantom Cougar from Your Local ASPCA');
……内部应该看起来像这样(也许我错了)……
function $(var element = null) { if (element != null) { function attr(var attribute = null,var value = null) { /* stuff that does things */ } } }
这是在Javascript中定义对象及其子方法和属性的常规过程吗?将Javascript与PHP进行比较,您是否使用了句点.你会用同样的方法 – >从对象中检索方法?
我为这有点冗长而道歉,但对这些问题的回答将对我揭示jQuery和Javascript的一般情况.谢谢!
解决方法
$(‘#element’).attr(‘alt’,’Ivan是超级饥饿!lolz’);
VS
$(‘#element’).attr({‘alt’:’伊万是一个丑陋的怪物!omfgz’});
var attr = function (key,value) { // is first argument an object / map ? if (typeof key === "object") { // for each key value pair for (var k in key) { // recursively call it. attr(k,key[k]); } } else { // do magic with key and value } }
2.关闭
(function(window,undefined){/ * jQuery * /})(window);
不用作onload处理程序.它只是在函数内创建新范围.
这意味着var foo是局部变量而不是全局变量.它还创建了一个真正的未定义变量,因为未指定的参数未定义
这个gaurds反复使用window.undefined = true,这是有效/允许的.
the (window) bit there at the end. What exactly is happening with the window object here?
它通过使其本地化来微观优化窗口访问.本地变量访问比全局变量访问快约0.01%
Am I wrong in the assessment that objects are no different than functions in Javascript?
是的,不是.所有功能都是对象. $()只返回一个新的jQuery对象,因为它在内部调用返回new jQuery.fn.init();
你的片段
function $(var element = null){
Javascript不支持默认参数值或可选参数.模拟这种情况的标准做法如下
function f(o) { o != null || (o = "default"); }
Comparing Javascript to PHP,do you use a period . the same way you would use -> to retrieve a method from an object?
您可以使用foo.property或foo [“property”]访问对象的属性,属性可以是任何类型,包括函数/方法.
4.你问题中隐藏的杂乱问题
Can someone give me a short explanation of what a map actually is and the important ways that it differs from an array in Javascript?
使用var a = []创建一个数组,它只包含一个键值对列表,其中所有键都是正数.它也拥有所有Array methods
.数组也是对象.
地图只是一个对象.对象只是一包键值对.您在对象上的键下分配一些数据.该数据可以是任何类型.