<script>
(function () {
var a = 3
function test() {
console.log(++a);
}
window.b = function() {
return {
c: test,
}
}
})()
b().c();
function Person(color) {
console.log(this);
this.color = color;
this.getColor = function() {
console.log(this);
this.color = color;
}
this.setColor = function() {
console.log(this);
this.color = color;
}
}
Person('red');
var p = new Person('yellow');
p.getColor()
var obj = {}
p.setColor.call(obj, 'green')
var test = p.setColor;
test();
</script>
- 使用对象的属性是什么时候用[]:1.属性名脑韩特殊字符如-;2.变量名不确定,属性名存储在变量中;
- 函数:test.call/apply(obj)让test函数称为obj的方法进行调用,js可以让指定函数成为某个对象的方法进行调用;
- 回调函数:1.自己定义的;2.自己没有调用;3.但是最终它执行了;就称为回调函数;常见回调函数:dom事件回调函数、定时器回调函数、AJAX请求回调函数、生命周期回调函数;
- IIEF:immediately-Invoked Function Expression(匿名函数自调用);隐藏实现:不会污染外部命名空间(全局);
- 函数this:任何函数本质上都是通过某个对象来调用的,函数里都有this,它的值是调用函数的当前对象;没有指定就是window调用的;判断this:1.test():window;2.p.test():3.p;new test():新创建的对象;4.p.call(obj):obj;
- 必须加括号的情况:1.小括号的前一条语句;2.中括号开头的前一条语句;