一、面向对象
var person = {
name: name,
age: age,
sayHi: function () {
console.log("我叫:" + this.name + "我今年:" + this.age);
}
}
console.log(person.name);
console.log(person.sayHi());
构造函数:
var person = function (name, age) {
this.name = name;
this.age = age;
this.sayHi = function () {
console.log("我叫:" + this.name + "我今年:" + this.age);
}
}
var p = new person('张三', 19);
p.name;
p.age;
p.sayHi();
var s1="aaa";
var s2="aaa";
s1==s2
true
var a1=[1,2,3];
var a2=[1,2,3];
a1==a2
false
var obj1={a:1};
var obj2={a:1};
obj1==obj2
false
var a1=[1,2,3];
var a2=a1;
a2.push(7);
console.log(a1);
(4) [1, 2, 3, 7]
var s1="aaa";
s1.b=10;
s1.b
undefined
var s1=new String("aa");
undefined
s1.b=10;
s1.b
10
1.对象的特点:
1)只有对象才有自己的私有属性;
2)凡是new出来的东西,绝对是对象;
二、this的用法;
function a(){
console.log(this);
}
window.a();
document.onclick = function(){
console.log(this);
}
var obj = {
a:function(){
console.log(this);
}
}
obj
setTimeout(function(){
console.log(this);
},0)
window
var name="my name is window";
var obj = {
name:"my name is obj",
fn:function(){
var time = null;
clearTimeout(timer);
timer = setTimeout(()=>{
console.log(this.name);
},0)
}
}
obj.fu();
my name is obj
1)在普通函数下 this 指向是window;
2)有事件源的都指向事件源本身;
3)在对象里,this 指向事件本身;
4)箭头函数,本身没有this,会自动寻找上级;