zoukankan      html  css  js  c++  java
  • 对象的创建

    创建对象

    工厂方式

    • 来个栗子:
    	function createPerson(name,sex){
    		//原料
    		var obj = new Object();
    		//加工
    		obj.name = name;
    		obj.sex = sex;
    		obj.show = function (){
    			alert(this.name)
    		}
    		//出厂
    		return obj;
    	}
    	
    	var p1 =  createPerson('hezhi','男');
    	var p2=  createPerson('hezhi','男');
    	p1.show();  //hezhi
    	p2.show();	//hezhi
    	alert(p2.show==p1.show)   //false
    
    • 所谓的构造函数模式,原型模式,都是在工厂方式上进一步改造而成的

    判断一个属性倒底是在原型中,还是在实例中 hasOwnProperty()

    • 来个栗子
    	function Person(){
    		
    	};
    	Person.prototype.name = "hezhi";
    	Person.prototype.age = 24;
    	
    	var p1 = new Person()
    	
    	alert(p1.name)			//hezhi
    	alert(p1.hasOwnProperty("name"))   //false       
    	
    	p1.name = 'zhaoqiao'
    	alert(p1.name);         //zhaoqiao
    	alert(p1.hasOwnProperty("name"))    //true
    	
    	//==华丽的分割线: 只有到name这个属性在对象的实例中的时候才会返回true;当存在原型中的时候只会返回false==//
    	
    

    属性在原型中完全成立的条件:来个栗子

    • hasPrototypeProperty()
    	function Person(){
    				
    	};
    	Person.prototype.name = "hezhi";
    	Person.prototype.age = 24;
    	
    	var p1 = new Person()
    	
    	
    	alert(p1.name)		//hezhi
    	alert("name" in p1)  //true
    	
    	p1.name ="zhangqiao";
    	alert(p1.name)     //zhangqiao
    	alert("name" in p1)  //true
    	
    	in 操作符表示,只要实例对象p1能够访问到的属性   //返回值都是 true
    	
    	
    	function hasPrototypeProperty(obj,name){
    		return  !obj.hasOwnProperty("name") && ("name" in obj)
    	}
    	
    	
    

    对象字面量的方法来重写原型对象

    • 来个栗子
    	function (){
    	}
    	
    	Person.prototype = {
    		name : 'hezhi',
    		age : 29,
    		show : function(){alert(this.name)}
    	}
    
    欢迎各位大虾指正
  • 相关阅读:
    dock 安装部署和初级管理命令
    3 gogs+jenkins 触发远程构建及tomcat管理war包替换
    2 gitlab+jenkins maven自动打包更新
    1 gitlab+jenkins 自动化部署 持续集成
    Day7 面向对象进阶
    Day 6 面向对象初级
    day4 迭代器&生成器&递归&json&正则
    day5 常用模块
    day3 函数
    day2 数据及文件操作
  • 原文地址:https://www.cnblogs.com/he-zhi/p/6796566.html
Copyright © 2011-2022 走看看