js对象基础写法练习
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>工厂模式</title>
</head>
<body>
<script>
function createPerson(name,age){
var obj = new Object ();
obj.uname = name;
obj.age =age;
obj.showPerson= function(){
console.log(this.age);
console.log(this.uname);
}
return obj;
}
var man = new createPerson('ajia',23);
man.showPerson()
</script>
</body>
</html>
<script>
function createPerson(name,age){
this.uname = name;
this.age = age;
this.showPerson = function(){
console.log(this.uname);
console.log(this.age)
}
}
var obj = new createPerson('zjs',23);
obj.showPerson();
</script>
<meta charset="utf-8">
<script>
function createPeson(name,age){
this.name = name;
this.age = age;
this.showMf = function(){
this.name= 'aaa---';
console.log(this.name)
}
}
createPeson.prototype.showPerson = function(){
console.log(this.name);
console.log(this.age);
}
var obj = new createPeson('ajia',23);
obj.showPerson();
obj.showMf();
</script>
<meta charset="utf-8">
<script>
function createPerson(name,age){
this.name = name;
this.age = age;
//动态创建一个方法
if(typeof createPerson.doWork == 'undefined'){
createPerson.prototype.doWork = function(){
console.log(this.name+'---'+this.age+'---'+'在学习');
}
createPerson.doWork = true;
}
}
var person = new createPerson('zjs',23);
person.doWork();
console.log(createPerson.doWork)
var person1 = new createPerson('ajia',33);
person1.doWork();
console.log(createPerson.doWork)
</script>
<meta charset="utf8">
<script>
//继承1
function Parent(name){
this.name=name;
this.sayParent=function(){
console.log("Parent:"+this.name);
}
}
function Child(name,age){
this.tempMethod=Parent;
this.tempMethod(name);
this.age=age;
this.sayChild=function(){
console.log("Child:"+this.name+"age:"+this.age);
}
}
var c = new Child('zjs',23);
c.sayChild();
c.sayParent()
</script>
<meta charset="utf-8">
<script>
// 继承2
function Person(name,age,love){
this.name=name;
this.age=age;
this.love=love;
this.say=function say(){
console.log("姓名:"+name);
}
}
//这里是call方法
function student(name,age){
Person.call(this,name,age);
}
// 这里是apply方法
function teach(name,love){
// Person.apply(this,[name,love]);
Person.apply(this,arguments);
}
//call与aplly的异同:
//1,第一个参数this都一样,指当前对象
//2,第二个参数不一样:call的是一个个的参数列表;apply的是一个数组(arguments也可以)
var t = new teach('mayun','baseketball');
t.say()
// var p = new Person('zjs',23,'nba');
// var s = new student('ajia',28);
// s.say();
</script>
<meta charset="utf-8">
<script>
//继承3
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.sayHello=function(){
console.log("使用原型得到Name:"+this.name);
}
function Student(){}
Student.prototype=new Person("洪如彤",21);
var stu=new Student();
Student.prototype.grade=5;
Student.prototype.intr=function(){
console.log(this.grade);
}
stu.sayHello();//输出:使用原型得到Name:洪如彤
stu.intr();//输出:5
</script>
js对象基础写法练习的更多相关文章
- [JS] 面向对象的5种写法和拓展JS对象的写法
面向对象的JAVA 最开始当然是对象的定义了 收集了以下的五种写法 //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; C ...
- JS对象的写法
写法1: <script> var database = function () { function add(){ console.info("add"); } fu ...
- JS对象基础 闭包等
一.我们知道js的基本数据类型包括:number,boolen,string,null及undefined; 看下面的一段代码: var abcobject = { firstname:" ...
- JS对象基础
JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性 属性是与对象相关的值. 访 ...
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) { return i1 + i2;//如果不写return返回 ...
- javascript基础-js对象
一.js对象的创建 1.普通最简单的方式 var teacher = new Object( ); teacher.name = "zhangsan"; teacher.age = ...
- 认识JS的基础对象,定义对象的方法
JS的基础对象: 1.window //窗口对象 2.document //文档对象 3.document.documentElement //html对象 4.docume ...
- 前端(十七)—— jQuery基础:jQuery的基本使用、JQ功能概括、JS对象与JQ对象转换、Ajax简单应用、轮播图
jQuery的基本使用.JQ功能概括.JS对象与JQ对象转换.Ajax简单应用.轮播图 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 j ...
- js 对象深复制,创建对象和继承
js 对象深复制,创建对象和继承.主要参考高级编程第三版,总结网上部分资料和自己的代码测试心得.每走一小步,就做一个小结. 1.对象/数组深复制 一般的=号传递的都是对象/数组的引用,如在控制台输入 ...
随机推荐
- 关于linq使用建议
1.由于目前我做的项目使用的是SocanCode工具生成的三层框架,于是乎对于一些基本数据类型采用了可空类型编程 public CountryCode(int? id, string en_name, ...
- JavaScript获取本机IP地址
<script type="text/javascript"> /** * Get the user IP throught the webkitRTCPeerConn ...
- RSA不对称加密
package sinRsa; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io ...
- [NOI2008]志愿者招募 网络流 建模
题目描述申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能完成,其中第i 天 ...
- PHPSTORM+Xdebug断点调试代码
如果没有安装 PHPSTORM 可以参考 phpstorm10安装并汉化 一.下载 XDEBUG 下载地址:https://xdebug.org/download.php 二.如何快速寻找适合自己PH ...
- BZOJ5017 炸弹(线段树优化建图+Tarjan+拓扑)
Description 在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj 满足: Xi−Ri≤Xj≤Xi+Ri,那么,该炸弹也会被 ...
- Linux 中挂载 ISO 文件
在 Linux 中挂载 ISO 文件 用 mount 命令,在终端中输入如下命令即可: sudo mount -o loop filename.iso /cdrom 其中 filename.iso 是 ...
- 浅析[分块]qwq
首先说明这篇博客写得奇差无比 让我们理清一下为什么要打分块,在大部分情况下,线段树啊,splay,treap,主席树什么的都要比分块的效率高得多,但是在出问题的时候如果你和这些数据结构只是混的脸熟的话 ...
- 【Henu ACM Round#18 F】Arthur and Walls
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑,为什么一个连通块里面的空格没有变成一个矩形? 如果不是形成矩形的话. 肯定是因为某个2x2的单张方形里面. 只有一个角是墙.其 ...
- Spring可扩展Schema标签
基于Spring可扩展Schema提供自己定义配置支持 http://blog.csdn.net/cutesource/article/details/5864562 WARN : org.sprin ...