OOP通常需要实例化(在使用之前创建类的实例),如下所示:
var x = new String();
Run Code Online (Sandbox Code Playgroud)
在jQuery(和其他框架)中,我们可以使用没有实例化的对象,例如(没有'new'):
$('#myid').click(function(){
//code
});
Run Code Online (Sandbox Code Playgroud)
这是我的问题:框架作者如何制作它?如何在没有"新"实例化的情况下使框架可以使用?
提前致谢!!
<script type="text/javascript">
var X = {
a: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
b: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
c: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
d: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}]
}
var str = JSON.stringify(X);
alert(str);
</script>
Run Code Online (Sandbox Code Playgroud)
这个对象有什么问题?它警告"Uncaught ReferenceError:john未定义"怎么来?
我有这个字符串:
var s = 'http://xxxxxxx.xxx/abcd123456789?abc=1';
Run Code Online (Sandbox Code Playgroud)
我怎么得到数字123456789("d"和"?"之间)?
这些数字可能有所不同 数字的位数也可能不同.
我怎么得到他们?正则表达式?哪一个?
if (!$is.IE5) {
v = (ua.toLowerCase().match(new RegExp(".+(?:rv|it|ra|ie)[\\/: ]([\\d.]+)"))||[])[1];
}
Run Code Online (Sandbox Code Playgroud)
[1]在这个reg表达式中意味着什么?
这段代码
var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2, $1")
Run Code Online (Sandbox Code Playgroud)
和这段代码
var re = /(.+)\s(.+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2, $1")
Run Code Online (Sandbox Code Playgroud)
做同样的事情.
.(点)和\w 元字符之间是否存在任何关键差异 ?
jQuery通过以下方式公开:
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
Run Code Online (Sandbox Code Playgroud)
但是有两个jQuery:
var jQuery = (function() {
// Define a local copy of jQuery
var jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},
Run Code Online (Sandbox Code Playgroud)
我知道它是合法的名字 - 它们来自不同的范围.但是哪一个曝光了?我想它是,var jQuery = function( selector, context )但似乎它的范围不同 window.jQuery = window.$ = jQuery;
erase: function(item){
for (var i = this.length; i--;) {
if (this[i] === item) this.splice(i, 1);
}
return this;
}
Run Code Online (Sandbox Code Playgroud)
这个(var i = this.length; i--;)句法结构如何 工作?
应该有三个部分吗?在这种情况下是什么?
从这里开始.
e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
Run Code Online (Sandbox Code Playgroud)
这个表达式将如何评估?