标签:
对象基础:
引用数据类型:
var person={
name:"hjd",
}
//添加age属性:
Object.defineProperty(person,"age",{
value:"30";
//可删除性:
configurable:true(可删)/false(不可删);
//可枚举性:
enumerable:true//false;
//可修改性:
writable:true//false;
})
对象创建方式:
//对象的添加:1
var person={
name:"zhangsan",
age:23,
say:function(){
console.log(1,2,3)
}
};
console.log(person.name);
console.log(person.age);
person.say();
// 对象的添加:2
var person1={
};
person1.name ="lisi";
person1.age=34;
console.log(person1.name);
console.log(person1.age);
// 对象的添加:函数方法3
function getPerson(name,age){
return{
name:name,
age:age,
sayName:function(){
console.log(1,2,3)
}
}
}
var person2=getPerson("wangwu",33);
console.log(person2.name);
console.log(person2.age);
// 对象的添加:函数方法4
// 返回object
function getPerson1(name,age){
var obj=new Object();
obj.name=name;
obj.age=age;
obj.sayName=function(){
console.log(2,3,2)
};
return obj;
}
var p1=getPerson1("liqi",25);
console.log(getPerson1("liliu",20));
console.log(p1.name);
console.log(p1.age);
// 构造函数:
function Person3(name,age){
this.name=name;
this.age=age;
this.sayName=function(){
console.log(1,1,1)
}
}
var person5=new Person3("WANG",57);
console.log(person5.name);
console.log(person5.age);
person5.sayName();
// 遍历对象的属性:
for(var x in person1){
console.log(x)
}
// 遍历对象的属性值:
for(var x in person1){
console.log(person1[x])
}
var arr=[1,2,3,4];
arr1=["zhang","wang","li"];
// forEach遍历数组的值,后面要跟方法:
arr.forEach(function(e){
console.log(e+1);
})//输出zhang1,wang1,li1
原型和原型链:
函数本身是一个对象:
1.作为函数,拥有prototype属性,prototype的custractor属性又指向函数本身.此函数产生的对象拥有-proto-属性,这个属性值和产
生他的函数的prototype属性是相等的.
2.函数作为对象本身,也具有-proto-属性,此属性指向上一级产生它的函数的prototype值,当上一级到达object时,object的-proto-
为null
例子:
function Person(){
}
Person.prototype.name="zhangsan";
Person.prototype.arr=[1,2,3,4];
var p1=new Person();
p1.name="lisi";
var p2=new Person();
console.log(p1.name);
console.log(p2.name);
//等号就是重新赋值:而不是设置属性
p2.arr=[1,2,3,4,5];
p2.arr.push(7);
console.log(p1.arr);
console.log(p2.arr);
// console.log(p1.arr);
// console.log(p2.arr);
// 共用一个原型
// p1.arr.push(7);
// console.log(p1.arr);
// console.log(p2.arr);
标签:
原文地址:http://www.cnblogs.com/hongxuejiao/p/4824842.html