欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

关于javascript对象的prototype与constructor

发布时间:2023/12/20 javascript 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 关于javascript对象的prototype与constructor 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

2019独角兽企业重金招聘Python工程师标准>>>

constructor 属性

表示创建对象的函数。

object.constructor

必需的 object是对象或函数的名称。

constructor始终指向创建当前对象的构造函数

事例:

function Parenizor(name){
    this.name=name
}
    Parenizor.prototype.getName=function(){
        return this.name;
    }
 
function Narenizor(value){
    this.value=value
}

    //当实例化对象赋值函数的原型prototype的时候,函数的constructor的指向会发生错误,需要进行修正
    Narenizor.prototype = new Parenizor("laoli");

   //constructor为对象原型prototype的属性

  //此方法可以对constructor指向进行修正

    Narenizor.prototype.constructor = Narenizor;
    Narenizor.prototype.setName=function(name){
        this.name=name;
        return this.name;
    }

   var myNarenizor = new Narenizor("xiaowang");

   alert(myNarenizor.constructor == Narenizor);//true

   alert(Narenizor.constructor == Function);//true

 

 

prototype 属性

返回对象类型原型的引用。

objectName.prototype

objectName 参数是对象的名称。

向Array的原型中添加扩展方法后,当使用for-in循环数组时,这个扩展方法也会被循环出来。

 

// 向JavaScript固有类型Array扩展一个获取最小值的方法Array.prototype.min = function() {var min = this[0];for (var i = 1; i < this.length; i++) {if (this[i] < min) {min = this[i];}}return min;};下面的代码说明这一点(假设已经向Array的原型中扩展了min方法):var arr = [1, 56, 34, 12];var total = 0;for (var i in arr) {total += parseInt(arr[i], 10);}console.log(total); // NaN解决方法var arr = [1, 56, 34, 12];var total = 0;for (var i in arr) {if (arr.hasOwnProperty(i)) {total += parseInt(arr[i], 10);}}console.log(total); // 103

hasOwnProperty 方法

返回一个布尔值,指出一个对象是否具有指定名称的属性。

object.hasOwnProperty(proName)

参数

object

必选项。一个对象的实例。

proName

必选项。一个属性名称的字符串值。

说明

如果 object 具有指定名称的属性,那么 hasOwnProperty 方法返回 true;反之则返回 false。此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。

示例

在下例中,所有的 String 对象共享一个公用 split 方法。下面的代码将输出 false 和 true。

var s = new String("JScript"); print(s.hasOwnProperty("split")); print(String.prototype.hasOwnProperty("split"));

转载于:https://my.oschina.net/u/259316/blog/52857

总结

以上是生活随笔为你收集整理的关于javascript对象的prototype与constructor的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。