<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js封装</title>
</head>
<body> </body>
</html>
<script type="text/javascript">
//javascript中面向对象的5种写法
//定义Circle类,拥有成员变量r,常量PI和计算面积的成员函数area() //第一种写法:比较正规的写法
function Circle(r){
this.r = r;
}
Circle.PI = 3.14159;
Circle.prototype.area = function (){
return Circle.PI * this.r * this.r;
}
var c = new Circle(2.0);
console.log(c.area()); //第二种写法:工厂方法
var Circle = function (){
var obj = new Object();
obj.PI = 3.14159; obj.area = function (r){
return this.PI * r * r;
}
return obj;
}
var c = new Circle();
console.log(c.area(2.0)); //第三种写法
var Circle = new Object();
Circle.PI = 3.14159;
Circle.area = function (r){
return this.PI * r * r;
}
console.log(Circle.area(2.0)); //第四种写法:JSON写法
var Circle = {
"PI":3.14159,
"area":function(r){
return this.PI * r * r;
}
}
console.log(Circle.area(2.0)); //第五种写法
var Circle = new function("this.PI = 3.14159;this.area =function(r){return r * r * PI;}");
console.log((new Circle()).area(2.0)); </script>

javascript中面向对象的5种写法的更多相关文章

  1. JS 中面向对象的5种写法

    //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circle.prototype.area = function() { ...

  2. JavaScript中选项卡的几种写法

    效果图: 1.基本写法 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  3. javascript中面向对象的两种构建方式(构造函数)和(原型模式的区别)

    1.构造函数模式--->alert的结果为false <!DOCTYPE html> <html lang="en"> <head> &l ...

  4. JS面向对象的几种写法

    JS 中,面向对象有几种写法.归纳下,大概有下面这几种:工厂模式,构造函数模式,原型模式,构造函数与原型模式的混合使用,原型链继承,借用构造函数继承. 一.工厂模式 function person ( ...

  5. 实现JavaScript中继承的三种方式

    在JavaScript中,继承可以通过三种手法实现原型链继承 使用apply.call方法 对象实例间的继承.     一.原型链继承 在原型链继承方面,JavaScript与java.c#等语言类似 ...

  6. JavaScript中面向对象的三大特性(一个菜鸟的不正经日常)

    经过几天的学习,把jQuery给啃会了,但是运用的还不算特别熟练,总感觉自己在JavaScript方面的基础十分欠缺,所以继续拾起JavaScript,开始更好的编程之旅~ 今天学的是JavaScri ...

  7. javascript中创建对象的几种不同方法

    javascript中创建对象的几种不同方法 方法一:最直白的方式:字面量模式创建 <script> var person={ name:"小明", age:20, s ...

  8. 请写出JavaScript中常用的三种事件。

    请写出JavaScript中常用的三种事件. 解答: onclick,onblur,onChange

  9. ThinkPHP中Widget的两种写法及调用

    Widget扩展一般用于页面组件的扩展,在页面根据需要输出不同的内容,下面介绍一下ThinkPHP中Widget的两种写法及调用 写法一: ArticlWidget.class.php文件: clas ...

随机推荐

  1. 【BZOJ4818】序列计数(动态规划,生成函数)

    [BZOJ4818]序列计数(生成函数) 题面 BZOJ 题解 显然是求一个多项式的若干次方,并且是循环卷积 或者说他是一个\(dp\)也没有问题 发现项数很少,直接暴力乘就行了(\(FFT\)可能还 ...

  2. 成都Uber优步司机奖励政策(4月5日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  3. 成都Uber优步司机奖励政策(3月26日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  4. TCP/IP漫游

    TCP/IP漫游 TCP/IP是互联网的基础协议栈,它包括大大小小几十个协议.本篇文章主要涉及到就是HTTP.TCP.IP协议.我们经常学的网络模型是七层或者五层,实际上一般认为一共只有四层就可以了. ...

  5. treetable--.net webform中树形table表管理的应用

    好记性不如烂笔头. treetable 官网:http://ludo.cubicphuse.nl/jquery-treetable/#api 今天要做一个关于table的树节点展示,还有编辑,删除功能 ...

  6. Qt-QML-ComboBox-自定义,实现状态表示,内容可以动态正价,使用ListModel

    哎呀呀呀, 问:杀死一个程序员一个程序要需要进步? 答:改三次需求 我感觉我就要再这需求的变更中被杀死了.不管怎么说,总是要跟着需求走的的,客户才是第一么(要不是因为钱,我才不会了) 下面先上个效果 ...

  7. Qt-QML-Connections,接受组件信号

    这里还没有什么新的体会.就直接上代码,在上篇一处上改出来的 import QtQuick 2.5 import QtQuick.Controls 1.4 ApplicationWindow { vis ...

  8. Java进阶知识点:不可变对象与并发

    一.String的不可变特性 熟悉Java的朋友都知道,Java中的String有一个很特别的特性,就是你会发现无论你调用String的什么方法,均无法修改this对象的状态.当确实需要修改Strin ...

  9. [C++ map & dp]codeforces 960F. Pathwalks

    题目传送门:960F 思路: 题目给人的感觉很像最长上升子序列,自然而然想到用dp的思路去处理 题目中给的限制条件是,要接上前面的边,前面的边权一定要小于当前的边权(题目按照输入的顺序,因此只找前面的 ...

  10. array.some() 方法兼容ie8

    在第 5 版时,some 被添加进 ECMA-262 标准:这样导致某些实现环境可能不支持它.你可以把下面的代码插入到脚本的开头来解决此问题,从而允许在那些没有原生支持它的实现环境中使用它.该算法是  ...