概念:构造函数;prototype属性;
表示看不懂js代码啊。jquery的this;jquery的事件代理。
1.window.ss = function(){
console.log(this);
}
此时this指window
2.window.ss.rr = function(){
console.log(this);
}
此时出错,可能是因为ss是未定义,不能给未定义加属性。
3.
`window.ss = function(){
console.log(“111”)
};
window.ss.rr = function(){
window.ss = function(){
console.log(“222”)
}
console.log(window.ss);
console.log(this);
console.log(window.ss);
window.ss = function(){
console.log(“222”)
}
}
window.ss.rr();`
此时this指的是window.ss。ss不是未定义了。但是this弹出的是老的内容,不是新的内容。这到底是怎么一回事啊?
this.函数的主人?a的b等于这个函数,this指a?
若是var ww = function(){
console.log(this);
}
this指window。因为全局变量的是window的属性?
4.
var ww = {a:8}
ww.ss = function(){
ww.a=10;
console.log(this);
}
这种情况,this是最新的ww。
5.
var ww = {a:8}
ww.ss = function(){
ww = {f:34}
console.log(this);
console.log(ww);
}
我明白了。this指引用此函数的对象。变量是同一个,里面的对象有可能改变之后还是自己,有可能直接换了个对象。我明白了。
那个例子用的真灵活
// Old button
+function($) {
$.fn.button = function() {
alert('Old button')
}
}(window.jQuery)
// Bootstrap button
+function($){
// 将原先的button插件对象赋值给一个临时变量old
var old = $.fn.button
$.fn.button = function() {
alert('Bootstrap button')
}
// 执行该函数,恢复原先的button定义,并返回Bootstrap定义的button插件
$.fn.button.noConflict = function () {
$.fn.button = old
return this
}
}(window.jQuery)
// <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal; background-color: #ffffff;">作用域</span>外我们可以灵活使用两个button插件
$.fn.button = $.fn.button.noConflict()
$('a').button() // alert('Bootstrap button')
$.fn.button.noConflict()
$('a').button() // alert('Old button')
…………………………………………………………….
对象的点操作符与方括号操作符的区别:
1.点后面的属性是确定的属性名;方括号里可以是字符串的拼接。