本课程学习视频教程:http://edu.51cto.com/course/15019.html
成都创新互联公司主营大化网站建设的网络公司,主营网站建设方案,重庆APP软件开发,大化h5微信小程序搭建,大化网站营销推广欢迎大化等地区企业咨询
方式一:使用object对象搞定
方式二:json格式
json的格式:
var stu={
name:"zhangsan",
addr:"南京",
age:15,
say:function () {
console.log(this.name,this.age,this.addr);
}
}
stu.say();
json数组:
value的变化多端
方式三:工厂方法
function createObject(name,age){
var object = new Object();
object.name = name;
object.age=age;
object.say=function(){
console.log(this.name,this.age);
}
return object ;
}
//创建对象
var object1 = createObject("张三",15);
//调用方法
object1.say();
//创建对象
var object2 = createObject("李四",20);
//调用方法
object2.say();
方式四:构造函数
题外话
function Person(){
console.log(this.name,this.age);
}
//函数的普通调用方式
window.name="hello";
window.age=15;
Person();
Person();
默认直接调用函数实际上调用的对象是window对象
创建对象
方式五:原型模式
利用的原理就是动态添加方法,转移this的指向
call方法介绍
call 方法:调用一个对象的一个方法,以另一个对象替换当前对象。
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj:可选项。将被用作当前对象的对象。
arg1, arg2, , argN:可选项。将被传递方法参数序列。
使用call方法来改写上面的案例
apply:和call用法基本一致
apply 方法:应用某一对象的一个方法,用另一个对象替换当前对象。
apply([thisObj[,argArray]])
参数:thisObj可选项。将被用作当前对象的对象。
argArray:可选项。将被传递给该函数的参数数组。
apply方式来改写案例
补充知识点:
callee :返回正被执行的 Function对象,也就是所指定的 Function对象的正文
function factorial(n){
if (n <= 0)
return 1;
else
return n * arguments.callee(n - 1)
}
console.log(factorial(5));
eval():执行eval参数中js代码
eval("var mydate = new Date();");
alert(mydate);
练习:
编写一个形状类,它是一个父类
然后编写一个长方形类,要求求出长方形的周长
在编写一个三角形类,求出三角形的周长
Title