JS--面向对象学习第一天

一、面向对象的属性:property

1.用来储存数据field(域),字段,属性

2.用来表示行为方法

注:访问对象的属性的时候,可以使用[],就像使用下标去数组中的元素一样。[变量]

eg.console.log(p["name"]);

二、对象的属性,可以动态的增加和删除

1.delect删除对象属性

2.添加到window中的属性,不能删除,即变量不能删除

三、在对象的方法中使用this时,this代表调用这个方法的时候使用的那一个对象,工厂方法创建对像的方法有,一,通过字面量获取对像,二、工厂方法

四、js函数的参数的传递:永远的值传递

五、可以使用for...in来遍历对象的所有属性

六、使用构造函数创建对像,必须使用关键字new,后面跟着构造函数的名,根据需要传入相应的参数。当构造函数的作用域赋给新对象时,意味着这个时候this就代表了这个对象。

练习一、

设计一个构造函数, 利用这个构造函数可以创建对象, 每个对象表示平面上的一个点, 每个对象应该提供一个方法: 功能是, 可以计算这个点和其他点之间的距离。

function Point(x, y){

this.x = x;

this.y = y;

this.distance = function (other){

return Math.sqrt((this.x - other.x) * (this.x - other.x)

+ (this.y - other.y) * (this.y - other.y))

}

}

var p1 = new Point(10, 20);

var p2 = new Point(20, 30);

console.log(p1);

console.log(p2);

console.log(p1.distance(p2));

console.log(p2.distance(p1));

练习二、

设计一个构造函数, 表示平面上的一个圆. 提供两个方法: 一个计算这个圆的周长, 一个计算这个圆的面积再增加一个功能, 可以计算两个圆的圆心之间的距离

function yuan(x,y,r){

this.x=x;

this.y=y;

this.r=r;

this.distance = function(other){

return Math.sqrt((this.x-other.x)*(this.x-other.x)+(this.y-other.y)*(this.y-other.y))

}

this.perimeter=function (){

return Math.PI*this.r*2;

}

this.area=function(){

return Math.PI*this.r*this.r;

}

}

var y1=new yuan(10,30,5);

var y2=new yuan(10,10,20);

console.log(y1.distance(y2));

console.log(y1.perimeter(),y1.area());

console.log(y2.perimeter(),y2.area());

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,103评论 1 10
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,769评论 0 33
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,842评论 2 17
  • 久违的阳光,天气特别好的周末~ 在车站看到好多小朋友,可爱的,呆萌的,他们用好奇地目光打量这个世界,阳光洒在他们脸...
    再也不做酱油瓶的粽子君阅读 185评论 0 0
  • Purpose, 这是Grit里重要的一章,也是成长群里最近讨论地多的话题,还是蜕变课程第三周的内容,今天就用这篇...
    Jane潇潇阅读 691评论 0 0