当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JavaScript OOP 代码实例分析

JavaScript OOP 代码实例分析

2019年01月13日  | 移动技术网IT编程  | 我要评论

javascript oop 代码实例分析

function print(str) {    
   document.write("<strong style='color:green;'>"+str+"</strong>");    
}    
function println(str){    
    if(str){    
        document.write("<strong style='color:green;'>"+str+"</strong><br/>");    
    }    
    else{    
        document.write("<br/>");    
    }    
}    
var obj = {};  
object.defineproperty(obj,"name",{configurable:false,//readonly  
                    value:"xiuye",  
                    enumerable:false,//not for in  
                    writable:false  
      
});  
  
println(obj.name);  
obj.name="javascript";  
println(obj.name);  
println("output property start:");  
for(property in obj){  
    println(property);  
}  
println("end");  
  
object.defineproperty(obj,"age",{  
   get:function(){  
       return 18;  
   } ,  
   set:function(value){  
       this._age=value;//不能设置为age否则stack error  
   }  
});  
  
println(obj.age);  
obj.age=99;  
println(obj.age);  
println(obj._age);  
  
obj.__definegetter__("year",function(){  
   return 2018;   
});  
obj.__definesetter__("year",function(value){  
    this._year = value;  // maximum call stack size exceeded  
});  
println(obj.year);  
obj.year=2230;  
println(obj.year);  
println(obj._year);  
  
object.defineproperties(obj,{  
   hobby:{  
       value:"美食",  
       configurable:false,  
       enumerable:false,  
       writable:false  
   },  
   level:{  
       value:100,  
       configurable:false,  
       enumerable:false,  
       writable:false  
   }  
     
});  
  
println(obj.hobby);  
println(obj.level);  
  
function user(){  
      
}  
user.prototype.name="xiuye";  
  
var u1 = new user();  
println(u1.name);  
var u2 = new user();  
println(u2.name);  
  
// println(u1.prototype);//error undefined  
// println(u2.prototype);  
u1.prototype = {};  
u1.prototype.name="javascript";  
println(u1.prototype.name);  
println(u1.name);  
// println(u2.prototype.name);  
  
  
// u2.prototype.name="javascript";  
// println(u1.prototype);  
// println(u2.prototype);  
xiuye  
xiuye  
output property start:  
end  
18  
18  
99  
2018  
2018  
2230  
美食  
100  
xiuye  
xiuye  
javascript  
xiuye  

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网