我们做程序开发的,经常面对的就是一个一个对象。那么在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>
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》