//1.使用new运算符创建Object
// var o = new Object();
// o.name = "三月";
// o.age = 20;
// console.log(o.name + "---"+ o.age);
//2 2.new关键字可以省略
// var o = Object();
// o.name = "二月";
// o.age = 21;
// console.log(o.name + "---"+ o.age);
//3 使用字面量方式创建Object
// var o ={
// name:'四月',
// age:22
// };
// console.log(o.name + "---"+ o.age);
//4.属性字段也可以使用字符串星矢
// var o ={
// 'name':'五月',
// 'age':23
// };
// console.log(o.name + "---"+ o.age);
//5.使用字面量及传统复制方式
// var o ={};
// o.name = "六月";
// o.age = 24;
// console.log(o.name + '---' + o.age);
//7.给对象创建方法
// var o = {
// run:function(){
// return "三月你个傻逼!";
// },
// pao:function(){
// var b ={}
// b.name ="我是四月啊!";
// b.age = 20;
// return b;
// }
// }
// var t = o.pao();
// console.log(o.run() + t.name);
// delete t.name;//删除属性
//字面量传值
// function o(obj) {
// if (obj.name != undefined) console.log(obj.name);
// if (obj.age != undefined) console.log (obj.age);
// }
// o({
// name : '三月今年长大了',
// age : 25
// });
//创建对象
// var b = new Object();
// b.name ="我叫三月";
// b.age = 18;
// b.run = function(){
// return this.name + this.age + '我很好!'; //this就是b对象;
// }
// //console.log(b.run());
// var a = b;
// a.name ="我叫小三";
// console.log(b.run());
//工厂模式
// function createFactory(a,b){
// var obj = new Object();
// obj.a = a;
// obj.b = b;
// obj.run = function (){
// return this.a + this.b + '很好!'; //this就是obj对象;
// }
// return obj;
// }
// var s1 = createFactory("三月说","他跑得很快");
// var s2 = createFactory("四月说","三月比他大");
// console.log(s1.run() + s2.run());
// console.log(typeof s1);
// console.log(s1 instanceof Object);
//构造函数
// function createGz(a,b){
// this.a = a;
// this.b = b;
// this.run =function(){
// return this.a + this.b + "我是跳出来的!";
// }
// }
// var g1 = new createGz("三月","他说是sb");
// var g2 = new createGz("五月","他说是sb");
// console.log(g1.run() + g2.run());
//原型
// function yx(a,b){
// yx.prototype.a = a;
// yx.prototype.b = b;
// yx.prototype.run = function(){
// return this.a + this.b +'是sb';
// }
// }
// var y1 = new yx('三月说','他自己是');
// console.log(y1.run());
// // var y2 = new yx();
// //console.log(y1.run() == y2.run()); //true,方法的引用地址保持一致
// console.log(y1.__proto__);
// console.log(yx.prototype.isPrototypeOf(yx));
function isProperty(object, property) { //判断原型中是否存在属性
return !object.hasOwnProperty(property) && (property in object);
}
var box = new Box();
console.log(isProperty(box, 'name')) //true,如果原型有
// var o = new Object();
// o.name = "三月";
// o.age = 20;
// console.log(o.name + "---"+ o.age);
//2 2.new关键字可以省略
// var o = Object();
// o.name = "二月";
// o.age = 21;
// console.log(o.name + "---"+ o.age);
//3 使用字面量方式创建Object
// var o ={
// name:'四月',
// age:22
// };
// console.log(o.name + "---"+ o.age);
//4.属性字段也可以使用字符串星矢
// var o ={
// 'name':'五月',
// 'age':23
// };
// console.log(o.name + "---"+ o.age);
//5.使用字面量及传统复制方式
// var o ={};
// o.name = "六月";
// o.age = 24;
// console.log(o.name + '---' + o.age);
//7.给对象创建方法
// var o = {
// run:function(){
// return "三月你个傻逼!";
// },
// pao:function(){
// var b ={}
// b.name ="我是四月啊!";
// b.age = 20;
// return b;
// }
// }
// var t = o.pao();
// console.log(o.run() + t.name);
// delete t.name;//删除属性
//字面量传值
// function o(obj) {
// if (obj.name != undefined) console.log(obj.name);
// if (obj.age != undefined) console.log (obj.age);
// }
// o({
// name : '三月今年长大了',
// age : 25
// });
//创建对象
// var b = new Object();
// b.name ="我叫三月";
// b.age = 18;
// b.run = function(){
// return this.name + this.age + '我很好!'; //this就是b对象;
// }
// //console.log(b.run());
// var a = b;
// a.name ="我叫小三";
// console.log(b.run());
//工厂模式
// function createFactory(a,b){
// var obj = new Object();
// obj.a = a;
// obj.b = b;
// obj.run = function (){
// return this.a + this.b + '很好!'; //this就是obj对象;
// }
// return obj;
// }
// var s1 = createFactory("三月说","他跑得很快");
// var s2 = createFactory("四月说","三月比他大");
// console.log(s1.run() + s2.run());
// console.log(typeof s1);
// console.log(s1 instanceof Object);
//构造函数
// function createGz(a,b){
// this.a = a;
// this.b = b;
// this.run =function(){
// return this.a + this.b + "我是跳出来的!";
// }
// }
// var g1 = new createGz("三月","他说是sb");
// var g2 = new createGz("五月","他说是sb");
// console.log(g1.run() + g2.run());
//原型
// function yx(a,b){
// yx.prototype.a = a;
// yx.prototype.b = b;
// yx.prototype.run = function(){
// return this.a + this.b +'是sb';
// }
// }
// var y1 = new yx('三月说','他自己是');
// console.log(y1.run());
// // var y2 = new yx();
// //console.log(y1.run() == y2.run()); //true,方法的引用地址保持一致
// console.log(y1.__proto__);
// console.log(yx.prototype.isPrototypeOf(yx));
function isProperty(object, property) { //判断原型中是否存在属性
return !object.hasOwnProperty(property) && (property in object);
}
var box = new Box();
console.log(isProperty(box, 'name')) //true,如果原型有