什么是JavaScript实例?

时间:2019-04-20 02:19:23

标签: javascript object ecmascript-6

JavaScript中的实例是什么?任何人都可以提供示例吗?

另外,请解释您的代码。

3 个答案:

答案 0 :(得分:1)

实例仅仅是由类(ES6)或构造函数创建的对象。这是一个示例:

function Person(name) {
  this.name = name;
}

var john = new Person("John Doe");
console.log(john);
//john is an instance of Person - we can see this by using the instanceof operator
console.log(john instanceof Person);

JavaScript在定义变量时会创建实例,但是只有使用typeof才能访问这些实例,除非您明确使用new构造函数来创建变量:

var str = "Foo Bar";
var num = 123;
var bool = true;
var obj = { abc: "def" }
var arr = [true, 1, "s"];

console.log(typeof str);
console.log(typeof num);
console.log(typeof bool);
console.log(typeof obj);
console.log(typeof arr);
console.log(typeof undefined);
console.log(typeof null);

尽管typeof有一些技巧-typeof [] == "object",因为数组是一个具有几种不同方法的对象。另一个最常见的问题是typeof null == "object",因为在nullundefined之间创建JavaScript时存在差异。

如果要查找任何值的构造函数,请使用constructor.name

var str = "Foo Bar";
var num = 123;
var bool = true;
var obj = { abc: "def" }
var arr = [true, 1, "s"];

console.log(str.constructor.name);
console.log(num.constructor.name);
console.log(bool.constructor.name);
console.log(obj.constructor.name);
console.log(arr.constructor.name);

此技巧也可用于您自己的构造函数和类:

function Person(name) {
  this.name = name;
}

var john = new Person("John Doe");
console.log(john.constructor.name);

答案 1 :(得分:0)

创建对象时! 示例:

//instancing a image
var myImage = new Image(100, 100);
//Append in to body
document.querySelector("body").appendChild(myImage);

答案 2 :(得分:0)

简单地说,在面向对象的编程中,存在类和对象。实例化或创建类的实例时,将获得一个对象。

例如,参加以下汽车课:

def tensorflow_adj(A):

    D = tf.pow(tf.reduce_sum(A, 1),-0.5)
    D = tf.diag_part(D)
    adj = tf.matmul( tf.transpose(tf.matmul(A,D),[1,0]),D)

    return adj

您刚刚实例化了Car类3次。每个都是实例。

ES2015(又名ES6)引入了class关键字和构造函数:

function Car(myVin) {
    this.vin = myVin;
}

let myHonda = new Car(“24A6733HJ42983C55”);
let myFord = new Car(“JJ67100473KL93228”);
let momsMinivan = new Car(“JF293HJL679904611”);

这涉及更多。

IMO,如果您真的想学习OO编程,那么最好首先学习C ++。在这里,您将看到经典继承在起作用,包括构造函数,私有,受保护的和公共数据成员,设计模式以及其他关键概念的概念。在您深入探究Ecmascript经典继承这一克鲁格之前,这将为您打下坚实的基础。

在后台,JavaScript具有原型继承性; Ecmascript在其顶部抹上古典继承。这有点怪异和棘手,并且必须通过关闭来做一些奇怪的事情才能实现隐私。

请参见下面的链接,以获取有关C ++中OOP的很好的课程。

https://m.youtube.com/watch?v=vz1O9nRyZaY