js系列

▶ javascript prototype属性使我们有能力向对象添加属性和方法;

  object.prototype.name=value;

实例:

<script type="text/javascript">

function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}

var bill=new employee("Bill Gates","Engineer",1985);

employee.prototype.salary=null;
bill.salary=20000;

document.write(bill.salary);

</script>

  

▶ instanceof 用于检测constructor.prototype是否存在于参数object的原型链上.

▶  原型链 感谢(详细)网址(https://www.cnblogs.com/chuaWeb/p/5039232.html) 

  JavaScript 是面向对象的语言,但是他的面向对象不是基于类的,是基于原型的。

▶javascript"类"

  感谢http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html

  Javascript语言不支持"类",但是可以用一些变通的方法,模拟出"类"。

  1.构造函数法:

    function Cat(){this.name="大毛";} //构造函数

    var cat1 = new Cat();  //生成实例

    js封装: http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html

      一个对象里封装两个属性, 构造函数, 实例里含有有个constructor指向他们的构造函数; js提供了一个instanceof运算符验证原型对象和实例对象之间的关系. 为解决内存占用过大的问题,js每个构造函数都有一个prototype属性(可能类似于c++/java中的继承). 对象实例可以用hasOwnProperty()方法判断属性是本地属性还是继承自prototype对象的属性.  in运算符判断该实例是否有某个属性, 也可以遍历所有的属性.

  2.Object.creat()法

原文地址:https://www.cnblogs.com/wolf-yasen/p/8646829.html