js中最重要的是:原型对象 普通对象和函数对象 构造函数

1.var lists=[{name:"jiali",age:28},{name:"jia",age:30},{name:"ki",age:30}];

var listCopy=JSON.parse(JSON.stringify(lists));

listsCopy[1]="aaa";

listsCopy;//索引1变了{name:"aaa",age:30}

lists//

2.var arr=[{x:1,y:3,z:r},{a:3,b:5,c:6},{1:6,m:8,n:9}];

arr.forEach(function(item,index){

for(i in item){

if(i=="x"{

console.log("1");

else{

console.log("2")}

}}

})

第二种方法:

arr.forEach(function(item,index){

if(item.hasOwnProperty("x")){

consle.log("1");

})

3重点就是原型

3.1

function Person(){}//空的函数对象

Person.prototype.name="jiai";

Person.prototype.age=20;

var person1=new Person();

var person2=new Person();

person1.name;

3.2

var cat={};//创建一个空的对象

cat.name="jiaji";

cat.color="blue";

var cat1={};

cat1.name="xiaoh";

cat1.color="hong";

函数封装

function cat(name,color){//普通函数

return{

name:name,

color:color

}

var cat1=cat("xiaoh","红色");

var cat2=cat("jiali","baise");

cat1.name;

};

4,构造函数和普通函数的区别

1,通过new

functon Cat(name,color){

this.name=name;

this.color=color;

//this.type="动物";//这是公共类这个不是最优的

//this.eat=function(){//这也是公共类的

console.log("爱吃老鼠");

}

};

Cat.prototype.type="动物";

Cat.prototype.eat=function(){

console.log("吃老鼠");

}

var cat1=new Cat("xiaoming","yellow");

cat1.name;

5。prototype

prototype中存入公共类的,这个是最优的

6.prototype验证

//in 不管自身属性还是原型属性都返回true;

//hasOwnPrototype 自身的属性为true  原型属性返回为false

console.log("name" in cat1);//true;

console.log("type" in cat1);//true

console.log(cat1.hasOwnProtype("name"));//true;

console.log(cat1.hasOwnProtype("type"));//false;

7.最为重要的,构造函数的继承,可以形成一个关系链

function Animal(){//动物对象

this.type="动物";

};

function Cat(name,color){

this.name=name;

this.color=color;

};

//apply()在一个对象中调另一个对象apply(this,参数)传数组

//call()也是在一对象调另一个对象 一个一个传

function Cat(name,color){

Animal.apply(this);//将 父对象的构造函数绑定在了子对象上 this相当于父类,改变了作用域

this.name=name;

this.color=color;

};

var cat1=new Cat("jia","yellow")

console.log(cat1.type);

。。。//prototype

function Animal(){//动物对象

//this.type="动物";

};

Animal.prototype.type="动物";//封装和插件用的比较多

function Cat(name,color){

this.name=name;

this.color=color;

};

Cat.prototype=new Animal();

var cat1=new Cat("jia","yellow")

console.log(cat1.type);//动物

原文地址:https://www.cnblogs.com/christinejia/p/9125605.html

时间: 2024-10-14 04:06:49

js中最重要的是:原型对象 普通对象和函数对象 构造函数的相关文章

js中继承的实现,原型链的知识点归纳,借用构造函数,组合继承(伪经典继承)

博客搬迁,给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/10/31/js%e4%b8%ad%e7%bb%a7%e6%89%bf%e7%9a%84%e5%ae%9e%e7%8e%b0%ef%bc%8c%e5%8e%9f%e5%9e%8b%e9%93%be%e7%9a%84%e7%9f%a5%e8%af%86%e7%82%b9%e5%bd%92%e7%ba%b3%ef%bc%8c%e5%80%9f%e7%94%a8%e6%9e%84%e9%80%a

说一说js中__proto__和prototype以及原型继承的那些事

在面试中遇到过,问js如何实现继承,其实最好的方式就是构造函数+原型,今天在讨论中,发现自己以前理解上的一些误区,特地写出来,最近都比较忙,等手上的项目做完,可以来做个总结. 先说我以前没有认识到位的地方 1 __proto__这个不是标准实现的,但是各大浏览器和node都采用了,ECMA6计划标准化它,__proto__对应于标准中的[[prototype]],也就是所谓的内置原型属性,要把它和函数的prototype的相区别,其实,__proto__最终是指向Function.prototy

JS中undefined、null以及NaN之间的区别,以及对象属性赋值的面试题

(1)以下三种情况typeof 返回类型为undefined --当变量未初始化时 --变量未定义时 --函数无明确返回值时(函数没有返回值时返回的都是undefined) (2)Null 类型 undefined 是由null派生处理的,因此undefined == null undefined 是声明了但是没有初始化的该变量, null表示尚未存在的对象 . (3)NaN 值 是一个特殊值,表示非数(Not a Number),类型转换失败就会返回NaN --NaN 不等于自己,即 NaN

对js中闭包,作用域,原型的理解

前几天,和朋友聊天,聊到一些js的基础的时候,有一种‘好像知道,好像又不不知道怎么讲的感觉’...于是捡起书,自己理一理,欢迎拍砖. 闭包 理解闭包首先要理解,js垃圾回收机制,也就是当一个函数被执行完后,其作用域会被收回,如果形成了闭包,执行完后其作用域就不会被收回. 如果某个函数被他的父函数之外的一个变量引用,就会形成闭包 闭包的作用,就是保存自己私有的变量,通过提供的接口(方法)给外部使用,但外部不能直接访问该变量. 例子(使用闭包): var test=(function(){ var

2018年10月24日 JS中 【“逻辑运算”,“面试题:作用域问题”,“dom对象”】这些问题的意见见解

1.逻辑运算 ||  &&  ! ||:遇到第一个为true的值就中止并返回 &&:遇到第一个为false的值就中止并返回,如果没有false值,就返回最后一个不是false值的true值 ||和&&:&&的优先级大于||: console.log(1&&3||0&&4);    3 console.log(4&&3-2);      1 2.作用域的问题 (1)Js代码如何执行 (2)js环境

JS中Object的一些关于原型的方法

1.Object.getPrototypeOf(obj) 该方法返回 obj 对象的原型对象,等同于 obj.__proto__ function Person(){ this.name = 'jack' } let man = new Person(); console.log(Object.getPrototypeOf(man) === Person.prototype); //true console.log(Object.getPrototypeOf(man) === man.__pro

JavaScript学习12 JS中定义对象的几种方式【转】

avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工厂方式 3.构造函数方式 4.原型("prototype")方式 5.动态原型方式 一.基于已有对象扩充其属性和方法 <script type="text/javascript

JS中的对象和方法简单剖析

众所周知,在js中对象就是精髓,不理解对象就是不理解js. 那么什么事js中的对象呢? 在js中,几乎一切皆对象: Boolean ,String,Number可以是对象(或者说原生数据被认作对象): Dates ,Maths,Regexps,Arrays,Funcitons,当然Objects,这些都是对象: JS中,所有值,除了原生值,都是对象:这些原生值包括:strings,numbers('3.14'),true,false,null和undefined 对象是包含变量的变量,js变量可

JavaScript学习12 JS中定义对象的几种方式

JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工厂方式 3.构造函数方式 4.原型("prototype")方式 5.动态原型方式 一.基于已有对象扩充其属性和方法 <script type="text/javascript"> var object = new Object(); object.name

Js中Prototype、__proto__、Constructor、Object、Function关系介绍 ,JS原型

此文来自:http://www.blogjava.net/heavensay/archive/2013/10/20/405440.html Js中Prototype.__proto__.Constructor.Object.Function关系介绍 一    Prototype.__proto__与Object.Function关系介绍        Function.Object:Js自带的函数对象. prototype,每一个函数对象都有一个显示的prototype属性,它代表了对象的原型(