美文网首页
JavaScript 9

JavaScript 9

作者: 依依玖玥 | 来源:发表于2017-06-18 00:42 被阅读0次

什么是原型?

原型是一个对象,其他对象可以通过它实现属性继承。

每个函数都有一个属性叫做prototype。

这个prototype的属性值是一个对象(属性的集合,再次强调!),默认的只有一个叫做constructor的属性,指向这个函数本身。

原型方式

该方式利用了对象的 prototype 属性,可以把它看成创建新对象所依赖的原型。

这里,首先用空构造函数来设置类名。然后所有的属性和方法都被直接赋予 prototype 属性。我们重写了前面的例子,代码如下

function Car() {

}

Car.prototype.color = "blue";

Car.prototype.doors = 4;

Car.prototype.mpg = 25;

Car.prototype.showColor = function() {

alert(this.color);

};

var oCar1 = new Car();

var oCar2 = new Car();

--proto--   constructor    protoype

hasOwnProperty()

hasOwnProperty()函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性。如果有,返回true,否则返回false。

语法:object.hasOwnProperty( propertyName )

hasOwnProperty()函数的返回值为Boolean类型。如果对象object具有名称为propertyName的属性,则返回true,否则返回false。

此方法不会检查对象的原型链中是否存在该属性,该属性只有是对象本身的一个成员才会返回true。

JavaScript中的in操作符

定义:in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性。

1.对于数组属性需要指定数字形式的索引值来表示数组的属性名称(固有属性除外,如length)。

// Arrays    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");      0 in trees        // returns true

2.in的右边必须是一个对象,如:你可以指定一个用String构造器生成的,但是不能指定字符串直接量的形式:

var color1 = new String("green");      "length" in color1 // returns true

3.如果你使用delete操作符删除了一个属性,再次用in检查时,会返回false,如:

var mycar = {make: "Honda", model: "Accord", year: 1998};    delete mycar.make;  "make" in mycar;  // returns false

4.如果你把一个属性值设为undefined,但是没有使用delete操作符,使用in检查,会返回true.

var mycar = {make: "Honda", model: "Accord", year: 1998}; mycar.make = undefined;"make" in mycar;  // returns true

相关文章

网友评论

      本文标题:JavaScript 9

      本文链接:https://www.haomeiwen.com/subject/ttxiqxtx.html