本文实例讲述了javascript 对象 与 prototype 原型用法。分享给大家供大家参考,具体如下:
我们做程序开发的,经常面对的就是一个一个对象。那么在javascript中我们怎么去创建一个类以及一个对象呢?
<script type="text/javascript">
//创建一个Test对象
function Test(){
}
var test = new Test();
//创建一个对象
var obj = new Object();
//json 对象
var json1 = {};
</script>
类都有自己的属性和方法,我们怎么去定义
<script type="text/javascript">
function Test(){
this.name = "谭勇";
this.age = 22;
this.getName = function(){
return this.name;
}
this.getAge = function(){
return this.age;
}
}
var test = new Test();
console.log(test); //查看一下日志
var obj = new Object();
obj.name = "谭勇";
obj.age = "22";
obj.getName = function(){
return this.name;
};
obj.getAge = function(){
return this.age;
};
console.log(obj); //查看下日志
var json1 = {};
json1["name"] = "谭勇";
json1["age"] = 22;
json1["getName"] = function(){
return this.name;
}
json1["getAge"] = function(){
return this.age;
}
console.log(json1); //查看下日志
</script>
构造方法
<script type="text/javascript">
function Test2(name,age){
this.name = name;
this.age = age;
this.getName = function(){
return this.name;
}
this.getAge = function(){
return this.age;
}
}
var test2 = new Test2("谭勇",22);
console.log(test2); //查看下日志
</script>
行为有形参
<script type="text/javascript">
function Test3(){
this.demo = function(param_str){
return param_str;
}
}
var test3 = new Test3();
console.log(test3.demo("aaaaaaaaaaaaaaaaaaaa"));
</script>
继承
<script type="text/javascript">
function parent(){
this.getStr = function(){
return "test str";
}
}
function son(){}
son.prototype = new parent();
var sona = new son();
console.log(sona.getStr());
</script>
拷贝继承
<script type="text/javascript">
function extend(Child, Parent) {
var p = Parent.prototype;
var c = Child.prototype;
for (var i in p) {
c[i] = p[i];
}
}
function parent(){
}
parent.prototype.getStr=function(){
return "test str";
}
function son(){
}
extend(son,parent);
var sona = new son();
console.log(sona.getStr());
</script>
原型
原型是一个对象,其他对象可以通过它实现属性继承。
任何一个对象都可以成为原型么?
是
哪些对象有原型
所有的对象在默认的情况下都有一个原型,因为原型本身也是对象,所以每个原型自身又有一个原型(只有一种例外,默认的对象原型在原型链的顶端。)
<script type="text/javacript">
var str = "谭勇";
String.prototype.getName = function(){
var strs = "";
for(var i=0;i<this.length;i++){
strs += this[i];
}
return strs;
}
console.log(str.getName());
console.log(str);
console.log(str[0]);
</script>
本文转载于社会猿技术网,原文链接:http://www.shehuiyuan.com/article/661