JavaScript中的实例是什么?任何人都可以提供示例吗?
另外,请解释您的代码。
答案 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"
,因为在null
和undefined
之间创建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的很好的课程。